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

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

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

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

199203 次浏览

eevent对象的短 var 引用,它将被传递给事件处理程序。

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

在这个例子中,你发布的是一个点击处理程序,它是一个 MouseEvent

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

鼠标事件 DEMO 使用 e.whiche.type

Some useful references:

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

它是对当前事件对象的引用

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

e没有任何特殊的意义。当参数为 event时,使用 e作为函数参数名称只是一种约定。

有可能

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

我也是。

e参数是事件对象的缩写。例如,您可能希望为取消默认操作的锚创建代码。为了做到这一点,你可以这样写:

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

这意味着当单击 <a>标记时,防止单击事件的默认操作。

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

在 jQuerye(event的缩写)中,当前事件对象。它通常作为要触发的事件函数的参数传递。

演示: JQuery Events

在演示中,我使用了 e

$("img").on("click dblclick mouseover mouseout",function(e){
$("h1").html("Event: " + e.type);
});

我还不如用 event

 $("img").on("click dblclick mouseover mouseout",function(event){
$("h1").html("Event: " + event.type);
});

一样!

程序员都很懒,我们使用了很多速记,一方面它减少了我们的工作量,另一方面有助于提高可读性。了解这一点将帮助您理解编写代码的心态。

免责声明: 这是对这篇文章的一个非常晚的回复,但是当我阅读了对这个问题的各种各样的回复后,我突然意识到大多数的回答使用的术语只有经验丰富的程序员才能理解。这个答案是为了解决最初的问题,并且考虑到新手的需要。

介绍

这个小小的“ (e)”实际上是 Javascript 中称为事件处理函数的更广泛范围的一部分。每个事件处理函数都接收一个事件对象。为了便于讨论,可以将对象看作是一个包含大量属性(变量)和方法(功能)的“东西”,就像其他语言中的对象一样。小 (e)内部的“ <你好m>你好”句柄就像一个变量,允许您与对象交互(我宽松地使用术语 variable VERY)。

考虑以下 jQuery 示例:

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


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

解释

  • "#someLink" is your element selector (which HTML tag will trigger this).
  • “ click”是一个事件(当选定的元素被单击时)。
  • “ function (e)”是事件处理函数(在事件上创建对象)。
  • “ e”是对象处理程序(对象是可访问的)。
  • “ proventDefault ()”是对象提供的方法(函数)。

发生什么事了?
当用户使用 id “ # 有些链接”(可能是锚标记)单击元素时,调用匿名函数 “功能(e)”,并将结果对象分配给处理程序 “ e”。现在使用该处理程序并调用它的一个方法 防止违约(),这应该可以防止浏览器执行该元素的默认操作。

注意: 句柄几乎可以任意命名(比如‘ 功能(bilybob)’)。“ e”代表“ event”,对于这种类型的函数来说,这似乎是相当标准的。

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

在 jQuery 的学习站点 http://learn.jquery.com上可以找到关于这个主题的一些非常好的信息。特别注意 使用 jQuery 核心活动节。

今天我刚刚写了一篇关于“为什么我们要使用 e 这样的字母?”我想我的回答会有些道理。

首先,让我们看看 addEventListener 的语法

通常情况下是这样的: AddEventListener (type,listen [ ,useCapture ]) ;

AddEventlisten 参数的 定义是:

Type : 表示要侦听的事件类型的字符串。

侦听器 : 当指定类型的事件发生时,接收通知(实现 Event 接口的对象)的对象 occurs. This must be an object implementing the EventListener interface, or a JavaScript function.

(From MDN)

但我认为有一件事应该被注意: 当你使用 Javascript 函数作为侦听器时,实现 Event 接口的对象(对象事件)将自动分配给函数的 “第一个参数”。因此,如果你使用 function (e) ,对象将被分配给“ e”,因为“ e”是函数的唯一参数(绝对是第一个,然后你可以使用,防止默认,以防止某事... 。

让我们试试下面的例子:

<p>Please click on the checkbox control.</p>
<form>
<label for="id-checkbox">Checkbox</label>
<input type="checkbox" id="id-checkbox"/>


</div>
</form>
<script>
document.querySelector("#id-checkbox").addEventListener("click", function(e,v){
//var e=3;
var v=5;
var t=e+v;
console.log(t);
e.preventDefault();


}, false);
</script>

结果将是: [对象 MouseEvent ]5和您将阻止点击事件。

但如果你删除评论标志,比如:

<script>
document.querySelector("#id-checkbox").addEventListener("click", function(e,v){
var e=3;
var v=5;
var t=e+v;
console.log(t);
e.preventDefault();


}, false);
</script>

您将得到: 8和一个 错误:”未捕获的 TypeError: e.proventDefault 不是一个函数 (VM409:69)”。

Certainly,the click event will not be prevented this time.Because the "e" was defined again in the function.

但是,如果您将代码更改为:

<script>
document.querySelector("#id-checkbox").addEventListener("click", function(e,v){
var e=3;
var v=5;
var t=e+v;
console.log(t);
event.preventDefault();


}, false);
</script>

一切都会恢复正常... 你会得到 8和点击事件被阻止..。

因此,“ e”只是函数的一个参数,在 function ()中需要一个“ e”来接收“ event object”,然后执行 e.proventDefault ()。这也是为什么您可以将“ e”改为不被 js 保留的任何单词的原因。

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

In reference to the above code
$(this)是作为某个变量的元素。
click is the event that needs to be performed.
参数 e会自动从 js 传递给函数,函数保存了 $(this)值,可以在代码中进一步用来执行某些操作。

这将是我的第一个堆栈溢出帮助,但我有信心,我的答案将帮助任何人阅读这一点。

基本上,e 只是一个包含关于刚刚发生的事件的 资料的对象。 如果是“ click”,那么对象将包含关于 click 的内容, 如果是’提交’,那么对象将包含关于提交, 它们通常在 addEventListener 中找到。

clickMe.addEventListener('click', e => {
console.log(e)
}

也就是说,每当我“点击”这个按钮的时候,它就会记录下关于这个事件的信息,也就是说,我只要“点击”它,它就会打印出关于这个点击事件的信息。 E 是非常有用的,因为您可以访问并使用事件到您自己的项目中,例如打印 x 值的位置..

clickMe.addEventListener('click', e => {
console.log(e.clientX)
}

然后它会打印你“点击”事件的位置. . mine 它返回32

如果你喜欢视频,请看这个 Https://www.youtube.com/watch?v=_bvkovpyri0 video is not mine

支持我将真正帮助我,因为我是一个学生,并寻找机会来帮助这里。爱很多!