Jquery 为什么这个jq事件响应代码不起作用?
我正在尝试为最初加载的“link”类div以及用户稍后将在“linksPanelHdr”div中添加的任何其他类设置单击事件注册。我已经研究了现有SO关于如何执行此操作的答案,但我必须缺少一些基本内容 使用此html:Jquery 为什么这个jq事件响应代码不起作用?,jquery,html,events,Jquery,Html,Events,我正在尝试为最初加载的“link”类div以及用户稍后将在“linksPanelHdr”div中添加的任何其他类设置单击事件注册。我已经研究了现有SO关于如何执行此操作的答案,但我必须缺少一些基本内容 使用此html: <div class="linksPanelHdr"> <div id="171" class="link"> <span class="delButt">Delete Link</span>
<div class="linksPanelHdr">
<div id="171" class="link">
<span class="delButt">Delete Link</span>
<span class="openButt">Open Link</span>
</div>
</div>
据我所知,当单击dom中任何“linksPanelHdr”类元素的后代的任何“delButt”类元素时,这个jq应该触发警报。但是Firefox Inspector显示,无论是在初始加载中还是在动态添加的链接中,事件都没有注册。当然,点击事件无法触发
如果我将.delButt选择器替换为'null',当我在'linksPanelHdr'分区内单击时,事件将触发。有人能告诉我哪里出错了吗?提前谢谢 在发布之前,我又读了一些书。Esp我重读了SO: 在那里,我在示例中注意到: $(staticFounders).on(eventName,dynamicChild,function(){}) 我使用非静态祖先作为第一个选择器。i、 我试图在树上的一个div上注册这个事件,这个div可以被动态添加。我不知道jq怎么会知道这一点,但无论如何这解决了问题 现在我看到主选择器应该是树上包含特定(动态)选择器目标的第一个元素。我相信你想把第一个静态元素放在树上,以尽量减少冒泡时间——所以不要只提到“body”,因为它总是静态的。希望这能为其他人节省一些时间,他们可能会遇到我完全错过的同样情况
$(".linksPanelHdr").on("click",".delButt",function(){
alert("Triggered by link"+$(this).parent().attr('id'));
});