我是编程新手。以下代码中函数(e)中的“e”究竟是什么?我猜这是方法的接收者是什么,以及“这个”指的是什么?只是一个疯狂的猜测。但即使这样,我们也不能将函数(e)作为函数()而没有“e”吗?
$("#" + id).live("mouseenter", function (e) {
$(this).toggleClass("twittereyesopen");
});
答案 0 :(得分:5)
e
是event object
,它包含事件数据。请参阅jQuery Event Type,您可以在其中找到属性和方法的说明:
属性:
方法:
答案 1 :(得分:3)
e
只是一个参数名称。您可以根据需要为其命名。它将引用传递给函数的第一个参数,在本例中将是event object:
当浏览器触发事件或其他JavaScript调用jQuery的
.trigger()
方法时,jQuery会向处理程序传递一个事件对象,它可用于分析和更改事件的状态。该对象包括浏览器提供的规范化数据子集;event.originalEvent
中提供了浏览器未修改的本机事件对象。
this
所指的内容取决于如何调用函数。在jQuery中,事件处理程序内的this
引用处理程序(逻辑上)绑定到的元素:
当jQuery调用处理程序时,
this
关键字是对传递事件的元素的引用;对于直接绑定事件,这是附加事件的元素,对于委托事件,这是一个匹配selector
的元素。 (请注意,如果事件来自后代元素,则这可能不等于event.target
。)要从元素创建jQuery对象以便可以与jQuery方法一起使用,请使用$(this)
。
MDN一般提供good explanation of this
。
您可以在.on
documentation。
但即便如此,我们不能将函数(e)作为函数()而没有“e”吗?
是的,当然,在JavaScript中你可以定义没有参数的函数,但是传递参数不会引发错误。
答案 2 :(得分:2)
e
代表一个事件。您正在捕获事件,并可以对事件执行操作。