gpt4 book ai didi

javascript - 为什么当我点击 li 时会触发 ul?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:08:43 25 4
gpt4 key购买 nike

我有这个 html:

 <ul class='loc-list'>  
<li id="where_7" class="cont-list">North America
<ul>
<li id="contry_114" class="contry-list">canada</li>
<li id="contry_115" class="contry-list">mexico</li>
<li id="contry_117" class="contry-list">united states</li>
</ul>
</li>
</ul>

现在我写了两个 jquery 函数 onclick of list 为:

1st:

$(".cont-list").on("click", function(event){
alert("clicked on continent's list"); // working fine
};

第二:

$(".contry-list").on("click", function(event){
alert("clicked on country's list"); // not working!
};

在这里,当我点击 cont-list 时,它应该被称为 ones ,但在 2nd 函数中它是 没有被调用,而是 1st 函数被调用!

是因为它是一个内部列表吗?如果是这样,那么如何处理它以便仅在单击该列表时才调用它?

The demo is here

提前致谢!

最佳答案

那是因为事件冒泡了,可以使用event对象的stopPropagation方法:

$(".contry-list").on("click", function(event){
event.stopPropagation();
alert("clicked on country's list");
});

如果您正在动态生成 li 元素,您应该委托(delegate)事件:

$(document).on('click', '.coutry-list', function(){
console.log('li element is clicked');
})

关于javascript - 为什么当我点击 li 时会触发 ul?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15137332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com