$('#myTable').click(function(e) {
var clicked = $(e.target);
clicked.css('background', 'red');
});
有人可以向我解释这一点,并解释为什么需要 e 以及它实际做什么..
$('#myTable').click(function(e) {
var clicked = $(e.target);
clicked.css('background', 'red');
});
有人可以向我解释这一点,并解释为什么需要 e 以及它实际做什么..
Usinge
只是event
. 你可以传递任何你想要的变量名。
// would work just the same
$('#myTable').click(function(anyothername) {
var clicked = $(anyothername.target);
});
您可以查看有关jQuery 处理事件的更多信息。
拥有e
(引发事件的对象)的一个好处是可以防止某些元素的默认行为传播。例如:
<a id="navLink" href="http://mysite/someOtherPage.htm">Click For Info</a>
呈现用户可以点击的链接。如果用户禁用了 JavaScript(为什么?我不知道),您希望用户在单击链接时导航到 someOtherPage.htm。但是如果他们启用了 JavaScript,那么您希望显示一个模态对话框而不是离开页面。您可以通过阻止锚点/链接的默认行为并按如下方式显示模式来处理此问题:
$("#navLink").click(function(e) {
e.preventDefault(); //this prevents the user from navigating to the someOtherPage.htm
$("#hiddenDiv").dialog({
//options
}); //show the dialog
});
因此,使该参数可用,除其他答案中描述的其他事项外,您还可以防止所选元素的默认行为。
希望这可以帮助!
我在理论上说我不是专家,但我通过使用他的小 (e) 达到了预期的结果,它不必是一个 e lol
我想到了。这是一种将同一事件从一个函数传递到另一个函数的方法。
简单来说。我想让页面导航成为一个弹性滚动功能,但是,我希望页面通过悬停“和”导航,我希望在某些条件下可以点击相同的导航。我还想要来自其他非链接的点击事件的相同动态导航。为了保持当前目标并仍然使用导航功能,我必须设置小 (e),因为 jQuery 将失去 $(this) 的作用域作为函数 lol 的相同目标。这是一个快速示例。
function navigate_to_page(e){
var target = $(e.currentTarget).attr('href'); //--This is the same as $(this) but more static to bring out of it's scope
$('html, body').animate({
'scrollTop':$(target).offset().top-0,
'scrollLeft': $(target).offset().left-$(window).width()*0.0}, 2000, 'easeOutBounce');
}
不要让胡言乱语迷惑你。这只是一个简单的页面滚动动画。需要注意的是e.currentTarget。e是我们的变量,currentTarget是一个等效于 $(this) 的 jQuery,所以它们一起是一个 Globular $(this) 函数。现在我用另一个函数调用它,条件是这样的
$('#myNavigationDiv a').on('mouseenter', function(e){
if($(myCondition) === true){
return false;
}else{
navigate_to_page(e);
}
});
看到小 (e) 如何将所有东西联系在一起?
现在您可以将 (e) 替换为 (whateveryouwan)。通过在两个函数中调用 e 匹配e .currentTarget ,您可以将其应用于您需要的任何详细的特定功能,并节省自己的代码页,哈哈
它是函数的形式参数。jQuery 将在调用函数时传入一个事件对象。这用于确定目标。如文档中所述,即使浏览器(例如 IE)不传递事件对象,jQuery 也将始终传递事件对象。
在这种情况下,目标会告诉您最初单击的是哪个元素。