function(e){e.something ...}什么是e?

时间:2010-06-30 11:25:23

标签: javascript jquery

写作时

$("#new_lang").click(function(e) 
{
  alert("something");
  e.stopPropagation();
});

这里的 e 是什么,为什么没有它就能运作? 为什么我可以写任何东西而不是e?

5 个答案:

答案 0 :(得分:9)

e是处理程序收到的event object。你不需要特别使用“e”作为变量名,你可以随意调用它(只要它不是任意数量的关键字!),很多人称之为event

,你可以没有它,因为它是第一个参数,arguments[0]也可以,但我不会那样做。 You can see this working here,但我会再次使用当前声明的参数,因此它非常明确。

答案 1 :(得分:6)

e,在此上下文中,是click事件引发的事件对象。没有它它会很好地工作(虽然在你的例子中你将无法停止传播):

$("#new_lang").click(function() 
{
  alert("something");
});

您也可以将任何名称替换为e,就像使用任何函数参数

一样
$("#new_lang").click(function(eventObj) 
{
  alert("something");
  eventObj.stopPropagation();
});

答案 2 :(得分:3)

该示例中的

e是click事件的事件对象(link to docs)。与任何函数参数一样,您可以使用任何您想要的名称。如果您不需要对其进行任何操作(例如,如果您不需要致电stopPropagation),则可以将其完全取消。

答案 3 :(得分:3)

答案 4 :(得分:0)

再次来自上一个问题所链接的http://api.jquery.com/bind/

  

处理程序回调函数也可以   拿参数。当功能是   调用,JavaScript事件对象   将传递给第一个参数。

     

事件对象通常是不必要的   和参数省略,如   通常有足够的背景   处理程序绑定时可用   确切地知道需要做什么   当处理程序被触发时。   但是,有时它变得必要   收集有关的更多信息   当时用户的环境   事件已经启动。

该页面上有很多有用的信息。 :)