我有以下html:
<ul id="all-terminals">
<li data-terminal-id="101" class="">
<label>
<input type="radio" name="terminal" class="all" data-terminal-id="101">
<a ...></a>
...
</label>
</li>
<li data-terminal-id="100" class="active">
<label>
<input type="radio" name="terminal" class="all" data-terminal-id="100">
<a ..></a>
...
</label>
</li>
<li data-terminal-id="102" class="">
<label>
<input type="radio" name="terminal" class="all" data-terminal-id="102">
<a...></a>
...
</label>
</li>
</ul>
我写了以下听众:
$(document).on('click', '#all-terminals li label', function(){alert(123)});
当我点击标签时,我看到警报执行了twise。
为什么?
答案 0 :(得分:3)
答案 1 :(得分:2)
不完全确定原因,但mouseup
有效。
$(document).on('mouseup', '#all-terminals li label', function(){alert(123)});
答案 2 :(得分:1)
我认为你的情况正在冒泡。 阅读Bubbling and Capturing
答案 3 :(得分:0)
我不完全确定,但我认为当你点击标签时,你会击中其中2个子重叠元素。因为它们是标签的一部分但仍然是单独的元素,它会在标签上触发两个单击事件。
在小提琴上,它似乎是[a]元素重叠......