无法在 Internet Explorer 中为 window.event(或数据属性)分配属性
Can't assign properties to window.event (or data property) in Internet Explorer
所以,我正在使用事件冒泡来捕获子 DOM 事件... 我正在将点击事件附加到div
包装器,并将点击事件附加到该包装器的子包装器......这样:
<div onclick="foo();">
<div onclick="bar();">
Hello World!
</div>
</div>
function foo() {
alert(window.event.abc.one);
};
function bar() {
window.event.abc = {one: "23"};
};
如您所见,我正在为abc
分配一个自定义对象。 我使用它作为将消息发送到链上更靠后的点击处理程序的一种方式......并避免在每个子元素上使用闭包。 在其他浏览器中,您可以将任何您喜欢的内容分配给event
对象...这效果很好。
但是(当然),这在IE中不起作用。 我尝试在事件对象上使用"data"属性,但这只允许字符串。
还有其他方法可以在不对每个子对象使用闭包的情况下完成相同的功能吗?
不漂亮,但这应该有效。Box9 宏伟的建议是我忽略的,那就是,如果某些东西在冒泡之前设置了一个属性bar()
(例如,你内部div
的后代上的事件处理程序),它将被覆盖。
var msg = {};
// When the event bubbles up to document, we'll reset it to an empty object
// literal, ready for new information to be attached to it.
document.onclick = function() { msg = {} };
function foo() {
alert(msg.one);
};
function bar() {
// Assign this property only, so if something else had attached a property
// to `msg`, it will remain intact.
msg.one = "23";
};
相关文章:
- 如何使用jQuery按数据日期属性选择元素
- html5中数据描述属性中的html列表
- 挖空.js - 向服务器端发送的数据添加属性
- 在HTML5中是否可以有多个数据{名称}属性
- 将锚点更改为指向页面的数据url属性
- 如何使用Jquery更新数据确认属性中的消息
- 动态设置数据量属性的值
- PHP-AJAX复选框过滤器使用数据标记属性
- 解析云 - 在从云返回数据之前设置数据的属性
- 关于在 Vue.js 中设置数据对象属性的最佳实践
- 阻止执行数据 ajax 属性
- 如何获取 HTML 标记的“数据文件”属性的内容
- 如何从选定的(不同的id,相同的名称)数据列表(html5)选项中获取数据ID属性的值
- 了解数据消除属性在Bootstrap中的工作原理
- 引导表-排序是't使用数据reactid属性进行更正
- 异步关系上的Ember数据计算属性
- 如何使用jquery为数据url属性设置新值
- 如何使用jQuery mobile'的数据主题属性
- 无法使用exif获取图像元数据的属性
- 使用jQuery作为没有数据主属性的模块来引导RequireJS应用程序