前言
本文為「JavaScript 30」教學影片的學習筆記。
目標
在按住 Shift 鍵的情況下對核取方塊進行多個勾選。
筆記
首先取得所有的核取方塊元素。
1
| const checkboxes = document.querySelectorAll('.inbox input[type=checkbox]')
|
設定一個 handleCheck()
方法,以處理選取核取方塊時的行為。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| function handleCheck(e) { let inBetween = false;
if (e.shiftKey && this.checked) { checkboxes.forEach(checkbox => { if (checkbox === this || checkbox === lastChecked) { inBetween = !inBetween; }
if (inBetween) { checkbox.checked = true; } }) }
lastChecked = this; }
|
checked
屬性設置或返回核取方塊是否應被選中。
監聽每一個核取方塊,在 click
行為時觸發 handleCheck()
方法。
1 2 3
| let lastChecked;
checkboxes.forEach(checkbox => checkbox.addEventListener('click', handleCheck));
|