发送事件对象

时间:2013-11-30 08:35:49

标签: javascript javascript-events

每当事件导致javaScript代码运行时,就会创建一个名为event的事件对象。

  1. 关键字“event”是否代表所有类型的事件(例如鼠标事件,键盘事件等)?

  2. 更重要的是,以下示例究竟如何运作?


  3. onmousemove="myFunction(event)"
    

    这是使用关键字“event”的完整示例。 http://jsbin.com/AcanusA/10/edit

1 个答案:

答案 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