4
爲什麼當我用黑色邊框點擊框內時,切換不會執行,但是當我點擊外部時,它會,但不是複選框?是html標籤停止傳播嗎?
var checks = document.querySelectorAll("ul li");
for (var i = 0; i < checks.length; i++) {
checks[i].addEventListener("click", tog);
};
function tog(e) {
e.currentTarget.classList.toggle("active");
}
ul li {
background: #3CF;
padding: 0.25em 0.5em;
margin: 0.25em 0;
display: block;
cursor: pointer;
text-indent: 1.5em;
}
ul li.active {
background: #6EF;
}
label {
display: block;
width: 100px;
border: 1px solid black;
}
<ul>
<li>
<label>
<input type="checkbox">1
</label>
</li>
<li>
<label>
<input type="checkbox">2
</label>
</li>
<li>
<label>
<input type="checkbox">3
</label>
</li>
</ul>
謝謝!
是否可以避免第二次冒泡? – Vandervals
正如我在評論中解釋的答案。 https://jsfiddle.net/hvv6ucu8/7/即使傳遞的事件對象也是一樣的,所以我用可能的解決方法更新了我的答案,但是我猜並沒有直接的方法。 – rajuGT
你能把上面的小提琴拉長嗎?我看不出如何用多個標籤和一個'i'變量來工作 – Vandervals