4

可能重复:
在 Javascript/jQuery 中,(e) 是什么意思?

我是编程新手。下面代码中函数(e)中的“e”到底是什么?我猜它是该方法的接收者,“this”指的是什么?只是一个疯狂的猜测。但即便如此,我们难道不能在没有“e”的情况下将 function(e) 保留为 function() 吗?

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

3 回答 3

5

e是一个event object,它包含事件数据。请参阅jQuery Event Type,您可以在其中找到属性和方法的描述:

属性:

  1. 事件类型
  2. 事件.目标
  3. 事件数据
  4. event.relatedTarget
  5. 事件.currentTarget
  6. 事件.pageX/Y
  7. 事件.结果
  8. 事件.timeStamp

方法:

  1. event.preventDefault()
  2. event.isDefaultPrevented()
  3. event.stopPropagation()
  4. event.isPropagationStopped()
  5. event.stopImmediatePropagation()
  6. event.isImmediatePropagationStopped()
于 2012-08-27T15:54:41.903 回答
3

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 中,您可以定义不带参数的函数,但将参数传递给它们不会引发错误。

于 2012-08-27T15:57:28.590 回答
2

e代表一个事件。您正在捕获事件,并且可以对事件执行操作。

于 2012-08-27T15:55:05.173 回答