我正在点击任何给定的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事件的最简洁方法是什么?
答案 0 :(得分:1)
你需要在该类选择器上使用一个点,然后它应该可以工作:
$('.opt').live('click', function(event) {
console.log("Click!");
}
除非你做了一些异常的事情(例如对被点击的孩子进行了.stopPropogation()
),否则事件应该自行冒泡。
答案 1 :(得分:1)
$('.opt, .opt *').live('click', function(event) {
console.log("Click!");
}