防止Jquery中的二次单击操作

时间:2012-08-27 19:59:40

标签: javascript jquery

我有一个列表,列表中的每个项目都有一个div。如果你点击列表项,我希望它做一些事情(例如:alert(“在Div之外点击”);),但是当我点击列表中的div时我也想要一个动作(例如:alert(“Clicked”)在Div“);。

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

<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");
    });

1 个答案:

答案 0 :(得分:8)

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

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

<强> jsFiddle example