首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jquery/javascript: function(e){....e是什么?为什么需要它?它实际做什么/完成什么?

jquery/javascript: function(e){....e是什么?为什么需要它?它实际做什么/完成什么?
EN

Stack Overflow用户
提问于 2010-08-21 10:22:29
回答 3查看 84.6K关注 0票数 59
代码语言:javascript
复制
$('#myTable').click(function(e) {
    var clicked = $(e.target);
    clicked.css('background', 'red');
});

有没有人能给我解释一下,为什么需要e,以及它的实际用途。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-21 10:30:30

使用e只是event的简称。你可以传递任何你想要的变量名。

代码语言:javascript
复制
// would work just the same
$('#myTable').click(function(anyothername) {
    var clicked = $(anyothername.target);
});

你可以在jQuery's handling of events上查看更多。

票数 68
EN

Stack Overflow用户

发布于 2010-08-21 11:04:48

拥有e (引发事件的对象)的一个好处是可以防止传播某些元素的默认行为。例如:

代码语言:javascript
复制
<a id="navLink" href="http://mysite/someOtherPage.htm">Click For Info</a>

呈现用户可以单击的链接。如果用户禁用了JavaScript (为什么?我不知道),您希望用户在单击链接时导航到someOtherPage.htm。但是如果他们启用了JavaScript,那么您希望显示一个模式对话框,而不是离开页面。您可以通过阻止锚/链接的默认行为并按如下方式显示模式来处理此问题:

代码语言:javascript
复制
$("#navLink").click(function(e) {
  e.preventDefault();  //this prevents the user from navigating to the someOtherPage.htm
  $("#hiddenDiv").dialog({
    //options
  });  //show the dialog
});

因此,使该参数可用允许您在其他答案中描述的其他事情中,阻止所选元素的默认行为。

希望这能有所帮助!

票数 10
EN

Stack Overflow用户

发布于 2010-08-21 10:24:05

它是函数的形参。调用函数时,jQuery将传入一个事件对象。这用于确定目标。正如documentation中所指出的,jQuery将始终传递事件对象,即使浏览器(例如IE)不传递。

在这种情况下,目标会告诉您最初单击的是哪个元素。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3535996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档