1 回答

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
您的代碼中有拼寫錯(cuò)誤:querySelecotr應(yīng)該是querySelector. 您還可以使用getElementByIdid-property 來獲取元素。
這兩個(gè)版本都適用于我測(cè)試過的瀏覽器(Firefox、Chrome、Safari)。
如果使用preventDefault(),則在事件處理程序完成后將恢復(fù)選中狀態(tài)。因此,該事件處理程序內(nèi)部的任何更改都將被還原。一種解決方法是在setTimeout-call內(nèi)部切換狀態(tài)(請(qǐng)參閱下面的 checkbox3-example)。
let idCheckbox = document.getElementById("checkbox");
idCheckbox.addEventListener("click", function(e) {
e.preventDefault();
});
let idCheckbox2 = document.querySelector("#checkbox2");
idCheckbox2.addEventListener("click", function (e) {
e.preventDefault();
});
let idCheckbox3 = document.querySelector("#checkbox3");
idCheckbox3.addEventListener("click", function (e) {
e.preventDefault();
setTimeout(() => {
if (idCheckbox3.checked == false) {
idCheckbox3.checked = true;
} else {
idCheckbox3.checked = false;
}
}, 50);
});
<input id="checkbox" name="checkbox" type="checkbox"/>
<label class="sub-label" for="checkbox">Accept checkbox 1</label>
<br>
<input id="checkbox2" name="checkbox2" type="checkbox"/>
<label class="sub-label" for="checkbox2">Accept checkbox 2</label>
<br>
<input id="checkbox3" name="checkbox3" type="checkbox"/>
<label class="sub-label" for="checkbox3">Accept checkbox 3</label>
<br>
添加回答
舉報(bào)