jQuery:函数(e)中的(e)代表什么?

时间:2012-08-27 15:53:52

标签: jquery

  

可能重复:
  In Javascript/jQuery what does (e) mean?

我是编程新手。以下代码中函数(e)中的“e”究竟是什么?我猜这是方法的接收者是什么,以及“这个”指的是什么?只是一个疯狂的猜测。但即使这样,我们也不能将函数(e)作为函数()而没有“e”吗?

$("#" + id).live("mouseenter", function (e) {
    $(this).toggleClass("twittereyesopen");
});

3 个答案:

答案 0 :(得分:5)

eevent object,它包含事件数据。请参阅jQuery Event Type,您可以在其中找到属性和方法的说明:

属性:

  1. event.type
  2. event.target
  3. event.data
  4. event.relatedTarget
  5. event.currentTarget
  6. event.pageX / Y
  7. event.result
  8. event.timeStamp
  9. 方法:

    1. event.preventDefault()
    2. event.isDefaultPrevented()
    3. event.stopPropagation()
    4. event.isPropagationStopped()
    5. event.stopImmediatePropagation()
    6. event.isImmediatePropagationStopped()

答案 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代表一个事件。您正在捕获事件,并可以对事件执行操作。