2011-06-17 29 views
1

我有一个父母&我的网页中的子元素,其中都有单独的事件处理程序为他们定义。我在firefox中测试过,父元素的事件处理程序首先被执行。我希望它以另一种方式执行 - 首先执行子元素的事件处理程序。如何使用jquery在父/子元素中实现事件顺序

我已阅读关于如何使用bind,stopPropagation,preventDefault等来做到这一点,但我有点困惑,因为如何让这个工作?有人可以对这个话题有所了解吗?

这里是我正在执行的事件处理....

$('#Sidebar ul li .DeleteList').live('click', function(e) { 
     alert("I was deleted"); 
}); 

$('#Sidebar ul').delegate('li', 'click', function(e) { 
     alert("I was selected"); 
}); 

enter image description here

+0

你可以参考以下链接完成这个任务。[点击这里](http://stackoverflow.com/questions/4684602/nested-jquery-selectors-triggering-both-parent-and -child-specific-events)谢谢。 – Chandresh 2011-06-17 05:45:21

+0

我已经做到了。这在我的情况下不起作用。改变用于父元素的“委托”为“活”,这就是为什么仍然超出我的范围。 – vikmalhotra 2011-06-17 05:48:19

回答

0

为什么不保持一致,只是使用.live()两个? :D

$('#Sidebar ul li .DeleteList').live('click', function(e) { 
    alert("I was deleted"); 
}); 

$('#Sidebar ul li').live('click', function(e) { 
    alert("I was selected"); 
}); 

这种'删除'方式首先被触发。

小提琴:http://jsfiddle.net/c9sBD/

相关问题