如何使用 jquery 在父/子元素中实现事件顺序

发布于 2024-11-16 09:00:30 字数 513 浏览 2 评论 0原文

我有一个父母&我的网页中的子元素都为它们定义了单独的事件处理程序。我已经在 Firefox 中进行了测试,其中父元素的事件处理程序首先被执行。我希望它以另一种方式执行 - 首先执行子元素的事件处理程序。

我读过有关如何使用 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");
});

在此处输入图像描述

I have a parent & child elements in my web page where both have separate event handlers defined for them. I have tested in firefox, where the event handler for parent element gets executed first. I want it to execute the other way - child element's event handler getting executed first.

I have read about making use of bind, stopPropagation, preventDefault etc. make that happen but I am a bit confused as a to how to get this working? Can somebody shed some light on this topic?

Here is how I am implementing the event handling....

$('#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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人海汹涌 2024-11-23 09:00:30

为什么不保持一致并只使用 .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/

Why not be consistent and just use .live() for both? :D

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

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

This way 'deleted' gets triggered first.

fiddle: http://jsfiddle.net/c9sBD/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文