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
e是event对象的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.which和e.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)
发生了什么?
当用户单击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)
同样.
该e参数是短期的事件对象.例如,您可能希望为取消默认操作的锚点创建代码.要做到这一点你会写如下:
$('a').click(function(e) {
e.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)
这意味着<a>单击标记时,会阻止click事件的默认操作.
虽然您可能经常看到它,但即使您已将其指定为参数,也不必在函数中使用它.
在 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)
一样!
程序员很懒,我们使用了很多速记,部分减少了我们的工作,部分有助于提高可读性。了解这一点将有助于你理解编写代码的心态。
| 归档时间: |
|
| 查看次数: |
108172 次 |
| 最近记录: |