Tại sao sự kiện nhấp chuột của tôi bị bắn hai lần trong jquery?Tại sao sự kiện nhấp chuột của tôi được gọi hai lần trong jquery?
HTML
<ul class=submenu>
<li><label for=toggle><input id=toggle type=checkbox checked>Show</label></li>
</ul>
Javascript
$("ul.submenu li:contains('Show')").on("click", function(e) {
console.log("toggle");
if ($(this).find("[type=checkbox]").is(":checked")) console.log("Show");
else console.log("Hide");
});
Đây là những gì tôi nhận được trong giao diện điều khiển:
toggle menu.js:39
Show menu.js:40
toggle menu.js:39
Hide menu.js:41
> $("ul.submenu li:contains('Show')")
[<li> ]
<label for="toggle">
<input id="toggle" type="checkbox" checked>
"Show"
</label>
</li>
Chỉ kích hoạt một lần khi tôi thử tại đây http://jsfiddle.net/LRjUc/ –
@DominicGreen: Tùy thuộc vào việc bạn có nên u nhấp vào nhãn hoặc hộp kiểm (hoặc 'li'). Nếu bạn nhấp vào nhãn, thì ít nhất là trên Chrome, bạn sẽ nhận được cả hai sự kiện. –
Có, hơi khó nhìn thấy nhưng nếu bạn chọn văn bản cuối cùng trên bảng điều khiển, bạn có thể thấy sự kiện được kích hoạt hai lần sau đó. – shuji