Jquery 需要一种将函数添加到不断变化的html(ul)列表的方法吗
我一直在考虑如何在Jquery 需要一种将函数添加到不断变化的html(ul)列表的方法吗,jquery,html,Jquery,Html,我一直在考虑如何在本身的上的“.click()”事件中添加函数。第一件事很简单(这是近似的,显然我不是jquery专业人士) $(文档)。准备好了吗( 函数(){ $('.prodli').each().click(//prodli是我在每个 函数(){ //布拉布拉 } ); } ); 但是!因为总有一个地方。。。问题是这些可以通过另一个jquery脚本删除和添加 因此,如果我应用我在列表上写的上一个脚本: <ul> <li productId="1" class=
本身的
上的“.click()”事件中添加函数。第一件事很简单(这是近似的,显然我不是jquery专业人士)
$(文档)。准备好了吗(
函数(){
$('.prodli').each().click(//prodli是我在每个
函数(){
//布拉布拉
}
);
}
);
但是!因为总有一个地方。。。问题是这些
可以通过另一个jquery脚本删除和添加
因此,如果我应用我在列表上写的上一个脚本:
<ul>
<li productId="1" class="prodli">Product 1</li>
<li productId="2" class="prodli">Product 2</li>
<li productId="3" class="prodli">Product 3</li>
<li productId="4" class="prodli">Product 4</li>
<li productId="5" class="prodli">Product 5</li>
<li productId="6" class="prodli">Product 6</li>
</ul>
- 产品1
- 产品2
- 产品3
- 产品4
- 产品5
- 产品6
我想如果使用其他脚本,我会将列表更新为
<ul>
<li productId="455" class="prodli">Product 455</li>
<li productId="48" class="prodli">Product 48</li>
<li productId="7" class="prodli">Product 7</li>
</ul>
- 产品455
- 产品48
- 产品7
我应该重新调用我的第一个脚本,将click()
函数应用于这些新的
,对吗
有没有一种更全球化的方式?我的意思是“每次单击类为“prodli”的元素时,应用此函数”?或者类似于此特定
列表中的每个
谢谢大家 您可以将单击事件委托给父
ul
元素(或任何其他祖先元素)。由于DOM事件往往会在树上冒泡,因此在子元素上的任何单击都会到达ul
,并且可以在那里进行处理
jQuery提供了执行此操作的方法(如果您使用的是较旧版本的jQuery,则需要使用它,而不是上的):
这意味着ul
的子项可以随意更改。这不会有什么不同。点击ul
的任何子代都会弹出ul
。jQuery检查单击是否源自与选择器匹配的元素(在本例中为any.prodli
元素),如果是,则执行事件处理程序。如果使用$(this),则使用这种方式,它是元素还是?我猜是,但我不确定。谢谢你的帮助。@MichaelDeKeyser-没问题。是的,
此
将引用单击的li
元素。谢谢您,先生。你救了我:没问题,很高兴我能帮忙:)
<ul>
<li productId="455" class="prodli">Product 455</li>
<li productId="48" class="prodli">Product 48</li>
<li productId="7" class="prodli">Product 7</li>
</ul>
$("ul").on("click", ".prodli", function() {
//Do stuff
});