我創建了一個自定義動畫複選框,看起來像一個開關。我使用類名來修改我的複選框的動畫。這裏是我的代碼:複選框必須點擊兩次以執行動畫
HTML
<label>
<input class="cb" type="checkbox">
<div class="ball"></div> <!-- don't mind this -->
</label>
的Javascript
var $ = document.querySelector.bind(document);
$('label').onclick = function() {
if(!$('.cb').checked) {
this.classList.add('clicked');
} else {
this.classList.remove('clicked');
}
}
它成功地工作,但不是完美的,因爲在複選框的初始點擊(頁面加載之後的意思),你必須點擊兩次才能執行第一個動畫。我試過event.stopPropagation()
但它仍然是一樣的。我也試過event.preventDefault()
,但它只適用於第一個動畫。
嗨,請嘗試更改,如果條件$('。cb')。檢查刪除'!'。 – Ninjaneer
[元素] .checked將在檢查輸入後立即爲真。 – Ninjaneer
@RohithKP'$(this)'將引用文檔。 – SLePort