window.onload=function(){
var wow=document.getElementById(“wow”);
wow.onclick=function(){
警报(“hi”);
}
}
<;标签id=“wow”>&书信电报;输入type=“checkbox”name=“checkbox”value=“value”>;文本</标签>
这是我的代码,当我点击“文本”时,它会提醒hi两次,但当我点击框时,onclick元素只会触发一次,为什么
当你点击标签时,它会触发点击处理程序,你会得到一个警报
但是,单击标签也会自动向关联的输入元素发送单击事件,因此这被视为单击复选框。然后,事件冒泡导致在包含元素(即标签)上触发click事件,从而再次运行处理程序
如果将HTML更改为此,则不会收到双重警报:
<;输入id=“wowcb”type=“checkbox”name=“checkbox”value=“value”>;
<;label id=“wow”for=“wowcb”>;文本</标签>;
标签现在使用for属性与复选框关联,而不是环绕它
演示