什么是经常为JavaScript事件处理函数定义的“事件”参数?

时间:2009-12-24 03:18:07

标签: javascript jquery dom javascript-events

很多时候我看到jQuery代码看起来像这样:

$('a').live( 'click', function(event){
..
});

事件参数有什么作用?它是对应元素'a'还是事件'live'?

4 个答案:

答案 0 :(得分:3)

这意味着页面上的每个锚元素(a)以及将来任何动态添加的锚元素都会附加一个click事件,它将运行传入函数的任何内容。

jQuery documentation of the live method

传入的函数的参数event是点击锚元素的结果。如果您使用Firefox和Firebug,您可以通过执行以下操作来检查此对象:

$("a").live("click", function(event) { 
    console.dir(event);
});

当您单击锚点时,您将能够在Firebug控制台中看到整个对象。

答案 1 :(得分:3)

我认为您具体询问event是什么,而不一定是live函数。 event是一个jQuery.Event (http://docs.jquery.com/Events/jQuery.Event)对象,它包含有关事件的大量内容,包括对单击对象的引用。

答案 2 :(得分:1)

在这种情况下,

event与HTML中每个'click'标记上发生的a事件相关联。它是一个包含鼠标单击的所有相关属性的对象。

live比仅绑定事件更有效,因为它会将自身附加到在完成所有事件绑定后动态创建的任何a标记。

答案 3 :(得分:1)

在javascript(不仅仅是特定于jQuery)中,事件对象是描述刚刚发生的事件的对象。 W3C DOM标准指定事件对象是传递给事件处理程序的第一个参数。在IE上,事件对象是一个全局变量。所以在常规的javascript(没有像jQuery这样的库)中,你经常会发现人们写的东西是:

div.onclick = function (event) {
  event = event || window.event; // take care of IE
  ..
}

像jQuery这样的大多数库都会为你解决这个问题,所以你只需要做W3C标准的事情。

事件对象是查找鼠标指针xy位置,按下哪个键等内容的唯一标准机制。

请参阅:https://developer.mozilla.org/En/DOM:event