我正在尝试在单击标签文本时运行某些功能,但是单击事件已触发两次.HTML
Box"/>
但如果我改变这样的HTML代码,它就不会发生.
我的脚本是这样的:
$('.label_one').click(function(){ console.log('testing'); });
任何人都可以解释为什么会发生这种情况.我的jsfiddle在这里检查一下. https://jsfiddle.net/sureshpattu/hvv6ucu8/3/
通常,所有元素都会将事件冒泡到文档的根目录,而label标签会将事件冒泡到其子节点,以及单击标签dom时输入标记是如何勾选的.
因此,在您的情况下,您将事件处理程序附加到label标签
>单击标签标签时调用>其中的事件气泡和复选框被选中,复选框将事件发送到其父节点,再次是标签标签,因此它被调用两次.
要解决这个问题,只需将事件处理程序附加到input / checkBox标签即可正常工作.