每当事件导致javaScript代码运行时,就会创建一个名为event的事件对象。
关键字“event”是否代表所有类型的事件(例如鼠标事件,键盘事件等)?
更重要的是,以下示例究竟如何运作?
onmousemove="myFunction(event)"
这是使用关键字“event”的完整示例。 http://jsbin.com/AcanusA/10/edit
答案 0 :(得分:0)
event
只是一个变量名称,它不是keyword。
关键字“event”是否代表所有类型的事件(例如鼠标事件,键盘事件等)?
是。但请参阅下文以获取更多信息。
更重要的是,以下示例究竟如何运作?
我假设您谈论内联事件处理程序,即您在HTML中添加的内容:
<div onmousemove="myFunction(event)"></div>
当HTML被解析为DOM元素时,会创建一个函数,其中body是属性的值并分配给相应的DOM属性。我们可以easily proof this with
console.log(document.querySelector('div').onmousemove.toString())
显示(在Chrome中)
function onmousemove(event) {
myFunction(event)
}
如您所见,该功能有一个名为event
的参数。在IE和Chrome中,还有一个特殊的全局变量window.event
。
但在所有其他情况下,变量名event
没有特定意义。它只是为事件对象选择的典型名称。如果将事件处理程序直接分配给DOM元素,则可以使用不同的变量名称:
myDiv.onclick = function(foobar) {
myFunction(foobar);
};
要了解有关事件处理的更多信息,请查看以下优秀文章:http://www.quirksmode.org/js/introevents.html。