我只是用 DOM 和 Javascript 来玩弄事件监听器,并注意到了这一点:
function chained(msg) {
console.log(msg, event);
}
function onClick() {
chained('the body was clicked');
}
document.body.addEventListener('click', onClick);
现在有趣的是......这将输出:
“身体被点击,(MouseEvent)”
然后我问,为什么?它如何传递事件对象而不将其发送到chained
call?
function chained(msg) {
console.log(msg, namedEventObj); //throw error namedEventObj is not defined
}
function onClick(namedEventObj) {
console.log(event); //outputs (MouseEvent);
console.log(nameEventObj); //outputs (MouseEvent);
chained('the body was clicked');
}
document.body.addEventListener('click', onClick);
即使我声明要传递的事件 objonClick
充当namedEventObj
它将仅适用于onClick
但不chained
功能...我得到了这个,这对我来说很有意义...但绝对不是event
变量可用于chained
功能。
任何人都知道为什么它会这样?
我唯一能想到的是该事件实际上是window.event
当某些事件调度和事件时,它使自己可用......但这意味着如果在事件触发时同时调用,任何元素都可以获取该事件信息?
我使用的是 Chrome 11.0.x
人们可以通过以下方式访问当前事件window.event
。只是使用event
正在隐式访问window.event
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)