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