问题描述
我正在玩DOM和javascript的事件监听器,并注意到:
I was just playing around with event listeners with DOM and javascript and did notice this:
function chained(msg) {
console.log(msg, event);
}
function onClick() {
chained('the body was clicked');
}
document.body.addEventListener('click', onClick);
现在有趣的事情...这将输出:
Now the funny thing...this will output:
然后我问,为什么?如何在链接
通话之前传递事件对象?
Then I ask, why? how does it passes the event object without sending it on the 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);
即使我声明事件obj在 onClick
函数作为 namedEventObj
它将仅可用于 onClick
而不是链接
函数...我得到这个,这对我来说很有意义,但绝对不是事件
变量可用于链接
功能。
Even If I declare the event obj to be passed on the onClick
function as namedEventObj
it will available only to onClick
but not to chained
function...I got this and this makes sense for me...but definitely not the event
variable to be available to the chained
function.
任何人都知道为什么它的行为是这样的?
Anyone know why does it behaves like this?
我可以想到的唯一的事情是,事件实际上是 window.event
,并且在某些事件调度和事件...时它可以使用,但这意味着任何元素可以在触发事件的同时调用事件信息?
The only thing I can think of is that event is in fact window.event
and it makes itself available when some event dispatches and Event...but that would mean that any element could get that event information if called at the same time as the event when it triggers?
我正在使用Chrome 11.0.x
I am using Chrome 11.0.x
推荐答案
可以通过 window.event
访问当前事件。只需使用事件
隐式访问 window.event
。
One can access the current event through window.event
. Just using event
is implicitly accessing window.event
.
这篇关于事件是一个全局变量,可以在回调链中的任何地方访问?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!