event 是一个全局变量,可以在回调链中随处访问吗? [英] Is event a global variable that is accessible everywhere inside the callback chain?

查看:27
本文介绍了event 是一个全局变量,可以在回调链中随处访问吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我只是在玩带有 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:

身体被点击,(MouseEvent)"

"the body was clicked, (MouseEvent)"

那我问,为什么?它如何传递事件对象而不在 chained 调用中发送它?

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 而不是 onClickcode>chained 函数...我明白了,这对我来说很有意义...但绝对不是 chained 函数可用的 event 变量.

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 并且它在某些事件调度和 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访问当前事件.仅使用 event 就是隐式访问 window.event.

One can access the current event through window.event. Just using event is implicitly accessing window.event.

这篇关于event 是一个全局变量,可以在回调链中随处访问吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆