gpt4 book ai didi

jQuery e.target 冒泡最佳实践?

转载 作者:行者123 更新时间:2023-12-01 01:11:04 24 4
gpt4 key购买 nike

在我的重ajax代码中,我总是绑定(bind)“单击”正文标记并根据 $(e.target) 进行操作&使用$.fn.hasClass() 。但是,当我单击具有 </span> 的 anchor 时里面的标签,我的$(e.target)等于这个节点,而不是我想要的父 anchor 。

从现在开始,我已经使用了这个技巧(var $t = $(e.target);):

/** bubbling **/
if($t.get(0).tagName !== "A" && $t.get(0).tagName !== "AREA") {
$t = $t.parent("a");
if(empty($t)) return true;
//else console.log("$t.bubble()", $t);
}

感觉有点不对劲...你有更好的实现吗?

<小时/>

$.fn.live()没有解决我的问题,因为它仍然返回跨度作为目标。此外,我正在寻找速度(在基于原子的触摸设备上运行)并且实时似乎要慢得多(两次):http://jsperf.com/bind-vs-click/3

<小时/>

事实上,正如 @Guffa 指出的那样,使用 $.fn.live()解决了跨度冒泡问题,因为我不需要 event.target不再了。我想这里没有其他“正确”的答案(在容器上使用绑定(bind))。

最佳答案

为什么不使用可以为您完成此操作的 live 方法?

$('a.someclass').live('click', function(){
// do something
});

live 方法绑定(bind)到 body 元素并根据选择器检查事件目标。

jQuery: live

关于jQuery e.target 冒泡最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4501412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com