jQuery事件冒泡:如何捕获嵌套点击?

时间:2010-03-07 13:43:15

标签: javascript jquery events

我正在点击任何给定的LI:

<ul>
    <li class="opt">Text 1</li>
    <li class="opt">Text 2</li>
</ul>

使用代码:

$('.opt').live('click', function(event) {
    console.log("Click!");
}

并且它的工作非常好:)但是,我还需要支持嵌套块元素存在于LI内部的能力,而不需要更改我的javascript代码。在这种情况下单击文本1时,上面的javascript 会触发:

<ul>
    <li class="opt">
        <div>
            <div>
                <span>Text 1</span>
            </div>
        </div>
    </li>
</ul>

我已经读过jQuery事件通过DOM“冒泡”,但遗憾的是这里没有发生这样的冒泡。当我不确定其中可能包含哪些其他元素时,在LI中捕获click事件的最简洁方法是什么?

2 个答案:

答案 0 :(得分:1)

你需要在该类选择器上使用一个点,然后它应该可以工作:

$('.opt').live('click', function(event) {
    console.log("Click!");
}

除非你做了一些异常的事情(例如对被点击的孩子进行了.stopPropogation()),否则事件应该自行冒泡。

答案 1 :(得分:1)

$('.opt, .opt *').live('click', function(event) {
    console.log("Click!");
}
相关问题