Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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/4/kotlin/3.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 div上的click事件不应由其触发';孩子们_Javascript_Jquery - Fatal编程技术网

Javascript div上的click事件不应由其触发';孩子们

Javascript div上的click事件不应由其触发';孩子们,javascript,jquery,Javascript,Jquery,假设我有以下代码: <div id="parent"> <div id="child"></div> </div> 当我单击子div时,是否有一种简单的方法阻止事件触发?我不想做这样的事 $('#child').click(function() { return false; }); 因为子div可能包含链接 谢谢 检查该选项 以下代码未经测试 var div = document.getElementById('parent'); j

假设我有以下代码:

<div id="parent">
    <div id="child"></div>
</div>
当我单击子div时,是否有一种简单的方法阻止事件触发?我不想做这样的事

$('#child').click(function() { return false; });
因为子div可能包含链接

谢谢

检查该选项

以下代码未经测试

var div = document.getElementById('parent');
jQuery(div).click(function(event) {
  if (event.target !== div) {
    return false;
  }
});


问题是他不想将事件附加到每个子元素。@David Dorward,这里怎么说?“因为子div可以包含链接…”只是为了稍微保护这个答案:使用了stopPropagation,但没有使用preventDefault,这意味着您的链接仍然会触发,即使您有一个分配给click的处理程序。jQuery非常友好地添加了事件处理程序,以确保默认行为和任何以前分配的处理程序(即,与html内联)仍按预期运行。
var div = document.getElementById('parent');
jQuery(div).click(function(event) {
  if (event.target !== div) {
    return false;
  }
});
$('#child').click(function(event) { 
       event.stopPropagation();
       //...
});