我是编程新手。下面代码中函数(e)中的“e”到底是什么?我猜它是该方法的接收者,“this”指的是什么?只是一个疯狂的猜测。但即便如此,我们难道不能在没有“e”的情况下将 function(e) 保留为 function() 吗?
$("#" + id).live("mouseenter", function (e) {
$(this).toggleClass("twittereyesopen");
});
我是编程新手。下面代码中函数(e)中的“e”到底是什么?我猜它是该方法的接收者,“this”指的是什么?只是一个疯狂的猜测。但即便如此,我们难道不能在没有“e”的情况下将 function(e) 保留为 function() 吗?
$("#" + id).live("mouseenter", function (e) {
$(this).toggleClass("twittereyesopen");
});
e
是一个event object
,它包含事件数据。请参阅jQuery Event Type,您可以在其中找到属性和方法的描述:
属性:
方法:
e
只是一个参数名称。您可以随意命名它。它将引用传递给函数的第一个参数,在这种情况下将是事件对象:
当浏览器触发事件或其他 JavaScript 调用 jQuery 的
.trigger()
方法时,jQuery 会向处理程序传递一个事件对象,它可以使用它来分析和更改事件的状态。该对象包括浏览器提供的标准化数据子集;浏览器未修改的原生事件对象在event.originalEvent
.
指的是什么this
取决于如何调用函数。在 jQuery 中,this
内部事件处理程序是指处理程序(逻辑上)绑定到的元素:
当 jQuery 调用处理程序时,
this
关键字是对传递事件的元素的引用;对于直接绑定的事件,这是附加事件的元素,对于委托事件,这是匹配的元素selector
。(请注意,这可能不等于event.target
事件从后代元素冒泡。)要从元素创建 jQuery 对象以便它可以与 jQuery 方法一起使用,请使用$(this)
.
MDN 提供了一个很好的解释this
。
.on
您可以在文档中找到更多信息。
但即便如此,我们难道不能在没有“e”的情况下将 function(e) 保留为 function() 吗?
是的,当然,在 JavaScript 中,您可以定义不带参数的函数,但将参数传递给它们不会引发错误。
e
代表一个事件。您正在捕获事件,并且可以对事件执行操作。