jquery - 如何在jquery中为当前项目设置事件并忽略父项?

标签 jquery

我有以下 HTML 结构。我将在一个项目上设置一个 mouseup 事件并获取父项,但这会将所有父项返回给我,因为它在所有 .dd- 上运行 mouseup 事件item 类。

<div class="dd" id="nestable">
    <ol class="dd-list">
        <li class="dd-item" data-id="1">
            <div class="dd-handle">Item 1</div>
        </li>
        <li class="dd-item" data-id="2">
            <div class="dd-handle">Item 2</div>
            <ol class="dd-list">
                <li class="dd-item" data-id="3"><div class="dd-handle">Item 3</div></li>
                <li class="dd-item" data-id="4"><div class="dd-handle">Item 4</div></li>
            </ol>
        </li>
    </ol>
</div>


$(".dd-item").on("mouseup",function(){
alert($(this).attr("data-id"));
})

上面的代码向我返回更多警报,但我只需要第一个(当前项目的父级)。

如何解决?

最佳答案

事件气泡 (there are some exceptions)。您需要停止事件的传播:

$(".dd-item").on("mouseup", function(event) {
  event.stopPropagation();
  console.log($(this).attr("data-id"));
});

相关问题:What is event bubbling and capturing?

关于jquery - 如何在jquery中为当前项目设置事件并忽略父项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40559818/

相关文章:

jquery - 将插件的方法应用于动态创建的元素?

javascript - jquery ui 自动完成 + websockets 实现

jquery - 动态更新谷歌元标签是否可取?如果通过 ajax 请求更新,谷歌是否会更新描述和标题等元标记?

javascript - 当向下滚动页面时出现和消失元素

javascript - 使用 jQuery 选择器定位并替换包含 HTML 的字符串中的元素

jquery - 在 jQuery 中获取边框宽度

php - 返回对象中的 "undefined"字段

javascript - SVG 上的 JQuery 事件未触发

JQuery UI 菜单滚动

php - 具有相同名称的Echo列-PHP/MYSQL左联接