gpt4 book ai didi

javascript - jquery 识别 li 是否被点击或 li 内的 p 被点击

转载 作者:行者123 更新时间:2023-11-28 04:42:32 26 4
gpt4 key购买 nike

<ul id='myid'>  
<li id='1'> my text 1 <p id='1' >inside p1 clicked</p></li>
<li id='2'> my text 2 <p id='1' >inside p2 clicked</p></li>
<li id='3'> my text 3 <p id='1' >inside p3 clicked</p></li>
<li id='4'> my text 4 <p id='1' >inside p4 clicked</p></li>
<li id='5'> my text 5 <p id='1' >inside p5 clicked</p></li>

</ul>

你好,我只想知道如果我点击“我的文本 1”如何提醒以及如果我点击“inside p1 clicked”如何提醒。因为每当我尝试点击“我的文本 1”时,它就起作用了。但是当我尝试点击“inside p1 clicked”时,它会带来两个警报,一个是“my text 1”,另一个是“inside p1 clicked”。请帮助可能是解决方案。

下面是我正在使用的代码。

$("#myid").delegate('p','click', function(){

提前致谢

最佳答案

这是event bubbling的问题.您可以使用 event.target 获取当前点击的元素。

如果你想停止事件冒泡,你可以使用event.stopPropagation

// click event for li
$("#myid li").click(function(){
alert("li clicked");
});

// click event for p
$("#myid li p").click(function(e){
alert("p clicked");
// stop event bubbling
e.stopPropagation();
});

而且您的 HTML 也无效。永远不要以数字开头 id。

如果您还想为 future 的元素附加点击事件,请使用 .live.delegate

并用 return false 代替 e.stopPropagation

// click event for li
$("#myid li").live("click", function(){
alert("li clicked");
});

// click event for p
$("#myid li p").live("click", function(){
alert("p clicked");
// stop event bubbling
return false;
});

关于javascript - jquery 识别 li 是否被点击或 li 内的 p 被点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3993823/

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