Jquery 如何阻止动态元素的事件冒泡?
此事件激发多次并删除所有项。如何阻止它。提前感谢。为什么要使用$(此).remove();如果您不想执行它?如果您使用的是Jquery 如何阻止动态元素的事件冒泡?,jquery,Jquery,此事件激发多次并删除所有项。如何阻止它。提前感谢。为什么要使用$(此).remove();如果您不想执行它?如果您使用的是.live(),那么在jQuery处理它之前,事件已经冒泡了。你说的“所有项目”是什么意思?这里不太清楚。。。请你再解释一下这个问题好吗。。。预期的结果是什么?很可能实现你追求的最终结果(不管是什么),但可能通过不同的机制。你能提供一个演示(也许在)来展示你目前的行为,并解释你希望发生什么?或者至少显示一个html示例。(你有相同类的嵌套元素吗?@EjazKarim有点离题,
.live()
,那么在jQuery处理它之前,事件已经冒泡了。你说的“所有项目”是什么意思?这里不太清楚。。。请你再解释一下这个问题好吗。。。预期的结果是什么?很可能实现你追求的最终结果(不管是什么),但可能通过不同的机制。你能提供一个演示(也许在)来展示你目前的行为,并解释你希望发生什么?或者至少显示一个html示例。(你有相同类的嵌套元素吗?@EjazKarim有点离题,我不确定你正在运行的jQuery的哪个版本,但是live()
从1.7开始就被弃用了,并且在1.9版本中被完全删除了,改用on()
。你会删除e.stopImmediatePropagation()
help to prevent冒泡?bcoz由于我们正在防止其默认的单击行为,因此不需要使用e.stopImmediatePropagation(),我的意思是OP的代码已经有了e.preventDefault()
。防止默认行为和防止传播不是一回事。因此(暂时忽略无法停止从.live()
处理程序的传播,因为事件已经传播了)删除与冒泡相关的OP代码的一行并没有多大帮助。(在任何情况下,您都应该更新您的答案,以解释您认为如何解决问题。)
$(".remove_btn").live('click', function(e){
e.preventDefault();
e.stopImmediatePropagation();
$(this).parent("td").fadeOut("slow",function(){
$(this).remove();
});
});
$(".remove_btn").live('click', function(e){
$(this).parent("td").fadeOut("slow",function(){
$(this).remove();
});
e.preventDefault();
});