写作时
$("#new_lang").click(function(e)
{
alert("something");
e.stopPropagation();
});
这里的 e 是什么,为什么没有它就能运作? 为什么我可以写任何东西而不是e?
答案 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事件对象 将传递给第一个参数。
事件对象通常是不必要的 和参数省略,如 通常有足够的背景 处理程序绑定时可用 确切地知道需要做什么 当处理程序被触发时。 但是,有时它变得必要 收集有关的更多信息 当时用户的环境 事件已经启动。
该页面上有很多有用的信息。 :)