//body
<button>全选</button>
<input type="checkbox" >
<input type="checkbox" >
<input type="checkbox" >
//js
const btn=document.querySelector('button');
const input=document.querySelectorAll('input');
//添加点击事件,改变选择框的状态
btn.onclick=()=>input.forEach(e=>e.checked=!e.checked)
//添加change事件,如果改变了输出1
input.forEach(e=>e.onchange=()=>console.log(1))
我直接点击选择框会输出1,但是点击按钮虽然选择框的状态会改变,但是没有输出1,没有触发onchange事件?这是什么原因啊?
就是这么设计的。我也不是很清楚原因,猜测是为了防止事件死循环吧。如果需要事件的话,手动触发
click
事件吧。