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

shr*_*ans 84 javascript parameters jquery function parameter-passing

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

$(this).click(function(e) {
    // does something
});
Run Code Online (Sandbox Code Playgroud)

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

Sel*_*gam 95

eevent对象的short var引用,它将传递给事件处理程序.

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

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

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

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


dsa*_*hez 39

免责声明:这是对这一特定帖子的一个非常晚的回应,但正如我一直在阅读对这个问题的各种回答,让我感到震惊的是,大多数答案都使用只有经验丰富的编码员才能理解的术语.这个答案试图在考虑到新手观众的情况下解决原始问题.

介绍

小" (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();
});
Run Code Online (Sandbox Code Playgroud)

说明

  • "#someLink"是您的元素选择器(HTML标记将触发此选项).
  • "click"是一个事件(单击所选元素时).
  • "function(e)"是事件处理函数(在事件上,创建了对象).
  • "e"是对象处理程序(对象可访问).
  • "preventDefault()"是由对象提供的方法(函数).

发生了什么?
当用户单击id为 "#someLink"的元素(可能是锚标记)时,调用匿名函数 "function(e)",并将结果对象分配给处理程序 "e".现在接受该处理程序并调用其中一个方法 "e.preventDefault()",这将阻止浏览器对该元素执行默认操作.

注意:句柄几乎可以任意命名(即' function(billybob) ').'e'代表'event',这似乎是这类函数的标准.

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

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


Pet*_*rfy 29

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

有可能

$(this).click(function(loremipsumdolorsitamet) {
    // does something
}
Run Code Online (Sandbox Code Playgroud)

同样.


Jam*_*son 7

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


j08*_*691 7

e参数是短期的事件对象.例如,您可能希望为取消默认操作的锚点创建代码.要做到这一点你会写如下:

$('a').click(function(e) {
    e.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)

这意味着<a>单击标记时,会阻止click事件的默认操作.

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


Got*_*urz 5

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

演示:jQuery 事件

在我使用的演示中e

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

我也可能用过event

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

一样!

程序员很懒,我们使用了很多速记,部分减少了我们的工作,部分有助于提高可读性。了解这一点将有助于你理解编写代码的心态。