Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数在单击表行时激发,需要停止启动函数的复选框_Javascript_Jquery_Function_Checkbox - Fatal编程技术网

Javascript 函数在单击表行时激发,需要停止启动函数的复选框

Javascript 函数在单击表行时激发,需要停止启动函数的复选框,javascript,jquery,function,checkbox,Javascript,Jquery,Function,Checkbox,我有一个设置为在单击某些表行时启动的函数,但总体思路如下: <p onclick="alert('Hello World!');">xxxxxxxxx<input type="checkbox"></p> xxxxxxxxx 如何使其在单击复选框时不触发函数?怎么样 <p onclick="var c = event.srcElement ? event.srcElement : event.target; if(c.tagName === 'P')

我有一个设置为在单击某些表行时启动的函数,但总体思路如下:

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

如何使其在单击复选框时不触发函数?

怎么样

<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.srcement,您可以访问实际触发事件的元素

编辑:Firefox没有属性srcElement,因此它需要使用目标属性

怎么样

使用event.srcement,您可以访问实际触发事件的元素


编辑:Firefox没有属性src元素,因此它需要使用目标属性

更简单的方法是设置和
。单击复选框的事件处理程序并执行以下操作


$(':checkbox')。单击(函数(事件){event.stopImmediatePropagation();};

更简单的方法是设置和
。单击复选框的事件处理程序并执行


$(':checkbox')。单击(函数(事件){event.stopImmediatePropagation();};

在任何情况下,都必须为该复选框创建一个单击处理程序

如果您使用的是jQuery,则只需在其中调用
event.stopPropagation()


否则,请查看本文中的代码示例(以及有关冒泡/捕获工作原理的完整说明)。

在任何情况下,都必须为复选框创建一个单击处理程序

如果您使用的是jQuery,则只需在其中调用
event.stopPropagation()

否则,请查看本文中的代码示例(以及有关冒泡/捕获工作原理的完整解释)。

Ivan的答案(+1)在我的测试中起作用,但如果您的用例更复杂(即,单击p中的子节点),则可能会失败。另一个选项是:

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

…至少在我的测试中有效(Chrome)

Ivan的答案(+1)在我的测试中有效,但是如果您的用例更复杂(即,单击p中的子节点),它可能会失败。另一个选项是:

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


…至少在我的测试中有效(Chrome)

在上应用onclick事件并希望它工作什么?他显然希望它在没有单击复选框时工作我已经在本页上尝试了第一个和第三个建议的方法,但都不起作用。我尝试了实施第二个建议,但也不起作用。我认为,由于复选框是容器的一部分,因此它需要注册将其注册为单击。但必须有一些干净的解决方法。在上应用onclick事件并希望它工作什么?他显然希望它在不单击复选框时工作我已经尝试过在本页上执行第一个和第三个建议的方法,但都不起作用。我尝试过执行第二个建议,但也不起作用。我认为由于复选框是容器的一部分,它将其注册为单击。但是必须有一些干净的解决方法。你不能将
srcElement
this
进行比较吗?我刚刚在chrome中尝试了这个方法,它起了作用。我想它与Firefox不兼容。除非显式传递事件,否则事件不会总是在FF中传递。你可以使用这个方法。xxxxxx

Nop,问题是firefox中不存在srcElement属性;只需要目标属性。现在已修复。使用该属性要好得多>xxxxxx

你不能将
srcelment
这个
进行比较吗?我刚刚在chrome中尝试了这个,它成功了。我想它与Firefox不兼容。除非显式传递,否则事件不总是在FF中传递。你可以使用它。

xxxxxx

Nop,问题是firefox中不存在srcElement属性;只需要目标属性。现在修复。使用它会更好如果(this.tagName=='p')alert('Hello World!');>xxxxxx

如果您没有使用jQuery,请确保手动停止IE(参见链接)再说一次,现在没有理由不使用jQuery:)如果您没有使用jQuery,请确保手动停止IE(请参阅链接),然后再说一次,现在没有理由不使用jQuery:)