在Javascript/jQuery中,(e)是什么意思?

我是JavaScript / jQuery的新手,我一直在学习如何制作函数。许多函数都出现了(e)在括号中。让我告诉你我的意思:

$(this).click(function(e) {
    // does something
});

似乎该函数甚至不使用(e)的值,那么为什么它经常出现呢?


答案 1

e是将传递给事件处理程序的对象的短 var 引用。event

事件对象实质上具有许多可以在事件处理程序中使用的有趣方法和属性。

在您发布的示例中,有一个点击处理程序,它是一个MouseEvent

$(<element selector>).click(function(e) {
    // does something
    alert(e.type); //will return you click
}

演示 - 鼠标事件演示使用和e.whiche.type

一些有用的参考:

http://api.jquery.com/category/events/

http://www.quirksmode.org/js/events_properties.html

http://www.javascriptkit.com/jsref/event.shtml

http://www.quirksmode.org/dom/events/index.html

http://www.w3.org/TR/DOM-Level-3-Events/#event-types-list


答案 2

免責聲明:这是对这篇特定帖子的非常晚的回应,但是由于我一直在阅读对这个问题的各种回应,这让我感到震惊的是,大多数答案都使用了只有经验丰富的编码人员才能理解的术语。这个答案是试图在新手观众的指导下解决原始问题。

介绍

小的“(e)”实际上是Javascript中称为事件处理函数的更广泛范围的一部分。每个事件处理函数都接收一个事件对象。出于本讨论的目的,将对象视为一个“事物”,它包含一堆属性(变量)和方法(函数),就像其他语言中的对象一样。句柄,小(e)东西里面的“e”,就像一个变量,允许你与对象交互(我非常宽松地使用术语变量)。

请考虑以下 jQuery 示例:

$("#someLink").on("click", function(e){ // My preferred method
    e.preventDefault();
});

$("#someLink").click(function(e){ // Some use this method too
    e.preventDefault();
});

解释

  • “#someLink”是你的元素选择器(哪个HTML标签会触发它)。
  • “单击”是一个事件(单击所选元素时)。
  • “function(e)”是事件处理函数(在事件上,创建对象)。
  • “e”是对象处理程序(对象是可访问的)。
  • “preventDefault()”是对象提供的方法(函数)。

发生了什么事情?
当用户单击 ID 为“#someLink”(可能是锚点标记)的元素时,调用匿名函数“function(e)”,并将生成的对象分配给处理程序“e”。现在,获取该处理程序并调用其方法之一“e.preventDefault()”,这应该会阻止浏览器对该元素执行默认操作。

注意:句柄几乎可以命名为您想要的任何内容(即'function(billybob)')。“e”代表“事件”,这似乎是这类函数的标准。

尽管'e.preventDefault()'可能是事件处理程序最常见的用法,但对象本身包含许多可以通过事件处理程序访问的属性和方法。

关于这个主题的一些非常好的信息可以在jQuery的学习网站上找到,http://learn.jquery.com。请特别注意使用 jQuery 核心事件部分。