Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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/shell/5.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 使用jquery触发ul标签点击事件而不是li_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用jquery触发ul标签点击事件而不是li

Javascript 使用jquery触发ul标签点击事件而不是li,javascript,jquery,html,Javascript,Jquery,Html,如何使用jQuery影响仅单击事件ul标记而非所有li <!-- HTML --> <ul class="wrap"> <li>test1</li> <li>test2</li> <li>test3</li> </ul> 我们如何做到这一点?事件将DOM“冒泡”到它们的父元素。您需要做的是将事件附加到ul,并在子li元素上附加另一个事件,该子元素使用stopPro

如何使用jQuery影响仅单击事件ul标记而非所有li

<!-- HTML -->
<ul class="wrap">
    <li>test1</li>
    <li>test2</li>
    <li>test3</li>
</ul>

我们如何做到这一点?

事件将DOM“冒泡”到它们的父元素。您需要做的是将事件附加到
ul
,并在子
li
元素上附加另一个事件,该子元素使用
stopPropagation()


您只需使用以下代码即可:

jQuery('.wrap').click(function (event) {    
    if ( !$(event.target).is( "li" ) ) {
        console.log('ul clicked!');
    } 
});

你可以在这里看到一个背景颜色显示ul和li的示例:

但ul毕竟会有li。点击ul检查这把小提琴是什么意思。ul有li,所以你认为点击li,就好像点击ul一样。我的意思是jquery点击事件将影响除所有li之外的所有li。谢谢Rory McCrossan。这是完美的工作。我试着在模态中使用这个。Thanks@user3763026没问题,很乐意帮忙
jQuery("ul.wrap")
    .on('click', function(){
        // do something...
    })
    .on('click', 'li', function(e) {
        e.stopPropagation();
    });
jQuery('.wrap').click(function (event) {    
    if ( !$(event.target).is( "li" ) ) {
        console.log('ul clicked!');
    } 
});