javascript - 防止 Jquery 中的二次点击操作

标签 javascript jquery

我有一个列表,列表中的每一项都有一个 div。如果您单击列表项,我希望它执行某些操作(例如:alert("Clicked outside Div");),但是当我单击列表中的 div 时我也想要一个操作(例如:alert("Clicked在 Div");.

但是,当我单击 div 时执行操作时,它还会立即执行与单击列表项相关的操作。是否可以防止这种行为,以便只显示 Clicked in Div?

<ul id="coll-selected-list" class="droptrue sort-drop">
       <li class="sortedli">
             <div class="sel-display-on" style="display: inline; float:left; width: 30px;">xx</div>
             Call Type
       </li>
</ul>

$('.sel-display-on').click(function () {
        alert("Clicked in Div");
    });
$('.sortedli').click(function () {
        alert("Clicked outside Div");
    });

最佳答案

$('.sel-display-on').click(function (e) {
    e.stopPropagation();
    alert("Clicked in Div");
});

当您单击 div 时,您的单击事件冒泡并触发列表项上的单击事件。使用 e.stopPropagation();来抵消这种行为。

jsFiddle example

关于javascript - 防止 Jquery 中的二次点击操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12148752/

相关文章:

jquery - 如何在选择菜单中为选项设置单独的样式 (css) (jquery-ui : selectmenu)

javascript - 为什么更改事件永远不会在选择框上触发?

jquery - 如何从 Django 模板调用 Dajax/Dajaxice 函数

javascript - 如何使用 Javascript 制作侧滑菜单类型的东西?

javascript - 通过 AJAX 将 PHP 表单变量传递给 Google Chart

jquery - 将 ListView 中的 jquery 移动复选框与数据图标组合在一起

javascript - Jquery - 弹出窗口开始......如何做剩下的

javascript - 如何遍历具有特定类的所有元素并在其中找到输入类型?

javascript - 在 JavaScript 中同时使用 keyup/keydown 事件

javascript - 如何覆盖网址?