event是一个全局变量,可以在回调链中的任何位置访问
Is event a global variable that is accessible everywhere inside the callback chain?
我只是在玩DOM和Javascript的事件监听器,并注意到了这一点:
function chained(msg) {
console.log(msg, event);
}
function onClick() {
chained('the body was clicked');
}
document.body.addEventListener('click', onClick);
现在有趣的是。。。这将输出:
"身体被点击,(鼠标事件)";
然后我问,为什么?它如何在不通过chained
调用发送事件对象的情况下传递事件对象?
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);
即使我将要在onClick
函数上传递的事件obj声明为namedEventObj
,它也只能用于onClick
,而不能用于chained
函数。。。我得到了这个,这对我来说很有意义……但绝对不是chained
函数可用的event
变量。
有人知道它为什么会这样吗?
我唯一能想到的是,事件实际上是window.event
,当一些事件调度和event。。。但这意味着,如果在触发事件的同时调用任何元素,都可以获得该事件信息?
我使用的是Chrome 11.0.x
可以通过window.event
访问当前事件。仅仅使用event
就是隐式地访问window.event
。
相关文章:
- 查询后websql成功回调无法访问变量
- 访问通过XHR.onreadystatechange回调中的XHR.send(data)发送的数据
- jQuery post,访问responseType或回调中的响应
- 在jQuery中,我如何从$.ajax回调函数访问$(this)
- 如何处理在javascript中访问数据结构的两个回调
- 如何在Typescript中的回调中访问类变量
- 如何访问ng-init或ng-checked中服务回调函数中声明的$scope变量
- 可以't从回调函数内部访问响应
- 如何在Promise回调中访问实例变量
- 如何通过回调访问nodejs中的mongodb计数结果
- 回调访问数据
- 如何从回调访问成员变量
- 从回调访问对象的属性
- 如何从传入的预定义回调访问外部变量
- 从 topic.subscribe's 回调访问小部件
- Javascript从另一个回调访问对象变量,而不将变量放在全局范围内
- 如何从WebSocket回调访问React中的组件方法
- 当使用原型方法声明从回调访问对象时,如何访问对象的其他方法
- js回调访问Angular作用域
- 从XMLHttpRequest onload回调访问全局变量