函数触发onclick表行,需要从启动函数停止复选框

时间:2012-01-06 06:25:45

标签: javascript jquery function checkbox

我有一个函数设置为在单击某些表行时触发,但这是一般的想法:

<p onclick="alert('Hello World!');">xxxxxxxxx<input type="checkbox"></p>

如何在单击复选框时触发功能?

4 个答案:

答案 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)中起作用