我有一个函数设置为在单击某些表行时触发,但这是一般的想法:
<p onclick="alert('Hello World!');">xxxxxxxxx<input type="checkbox"></p>
如何在单击复选框时触发功能?
答案 0 :(得分:2)
<p onclick="var c = event.srcElement ? event.srcElement : event.target; if(c.tagName === 'P')alert('Hello World!');">Whats up<input onClick="" type="checkbox"></p>
使用event.srcElement,您可以访问实际触发事件的元素
编辑:Firefox没有属性srcElement,因此需要使用目标属性
答案 1 :(得分:1)
更简单的方法是为复选框设置.click
事件处理程序并执行event.stopImmediatePropagation()
$(':checkbox')。click(function(event){event.stopImmediatePropagation();};
答案 2 :(得分:1)
在任何情况下,您都必须为复选框创建一个单击处理程序。
如果你正在使用jQuery,你只需要在其中调用event.stopPropagation()
。
否则,请查看此帖子http://www.quirksmode.org/js/events_order.html#link9以获取代码示例(并详细说明冒泡/捕获的工作原理)。
答案 3 :(得分:0)
Ivan的答案(+1)在我的测试中有效,但如果你的用例更复杂(即点击P中的子节点),它可能会失败。另一种选择是:
<p onclick="alert('Hello World!');">xxxxxxxxx<input type="checkbox" onclick="event.stopPropagation()"></p>
...至少在我的测试(Chrome)中起作用