使用jQuery事件委托忽略子元素

时间:2012-08-19 18:17:16

标签: jquery events delegation event-delegation

我正在使用on方法将click事件委托给注入的div。这些注入的div也会有子div,它们位于父div之外。我想忽略子div上的click事件,但似乎无法搞清楚。这是一个例子:

这是一个小提琴: http://jsfiddle.net/7ULUJ/

这是HTML

<div id="container">
<div class="click_this_one_only">
    click event delegated
    <div id="child1">
        child 1
    </div>
    <div id="child2">
        <div id="child_child">
            child child
        </div>
    </div>
</div>
</div>

以下是jQuery:

$('#container').on('click', '.click_this_one_only', function() {

   alert('you just clicked .' + $(this).attr('id'));
});

1 个答案:

答案 0 :(得分:3)

检查元素的事件目标:

http://jsfiddle.net/7ULUJ/3/

$('#container').on('click', '.click_this_one_only', function(e) {
    if ($(e.target).hasClass("click_this_one_only")) {
        alert("clicked");
    }
});​