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

IT技术 javascript jquery function parameters parameter-passing
2021-01-16 12:15:32

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

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

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

6个回答

eevent将传递给事件处理程序的对象的简短 var 引用

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

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

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

DEMO - 鼠标事件 DEMO 使用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

@SelvakumarArumugam 所以我不太确定它们是同一回事。似乎一个返回 w.Event,另一个返回 MouseEvent。对于上面的例子,我认为它们足够相似,但在 $(document).on('click', '.btn', e=> { console.log(e); console.log(event)} 的情况下); 两者是不同的。专门用于 e.currentTarget 和 event.currentTarget。在这种情况下, e.currentTarget 会给你你需要的东西,但 event.currentTarget 返回文档而不是你点击的按钮。
2021-03-14 12:15:32
@SpYk3HH 同意。打算这样做。
2021-04-01 12:15:32
大声笑,这几乎看起来像一个愚蠢的问题,但无论如何,它在正确的地方。,您可能想通过与常规 js 相比的使用示例进一步回答(不是说有差异,而是它是如何在 jQuery 中使用与 js 相似)
2021-04-05 12:15:32
查看回复,我会说 event === e.originalEvent,并且 e 包含更多细节。
2021-04-10 12:15:32

免责声明:这是对这篇特定帖子的一个很晚的回复,但当我阅读了对这个问题的各种回复时,我突然意识到大多数答案使用的术语只有经验丰富的程序员才能理解。这个答案是为了解决新手观众的原始问题。

介绍

' (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 核心事件部分。

e没有什么特别的意义。这只是一个约定使用e时,参数是函数的参数名称event

有可能

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

以及。

在那个例子中,e只是该函数的一个参数,但它是event通过它传入对象。

e参数是短期的事件对象。例如,您可能希望为取消默认操作的锚点创建代码。为此,您将编写如下内容:

$('a').click(function(e) {
    e.preventDefault();
}

这意味着当一个<a>标签被点击时,阻止点击事件的默认操作。

虽然您可能经常看到它,但即使您已将其指定为参数,也不必在函数中使用它。