如何在jQuery中处理嵌套事件

如何在jQuery中处理嵌套事件,jquery,events,nested,Jquery,Events,Nested,我有一个 <span class="fold"></span> 现在单击事件通过ajax添加了新的“折叠”类,我希望将相同的事件处理程序分配给这些类。这可能吗?如果可能,我将在逻辑中的何处“重新”添加我的单击处理程序 提前感谢只要写下: $(".fold").on("click", function(event){ //write code }); 更新:对于动态附加的元素,请编写以下内容: $(document).on('click', '.fold', fun

我有一个

<span class="fold"></span>
现在单击事件通过ajax添加了新的“折叠”类,我希望将相同的事件处理程序分配给这些类。这可能吗?如果可能,我将在逻辑中的何处“重新”添加我的单击处理程序

提前感谢

只要写下:

$(".fold").on("click", function(event){
  //write code
});
更新:对于动态附加的元素,请编写以下内容:

$(document).on('click', '.fold', function(e) {
    // write code
});

如果要动态添加需要处理程序的元素,请使用委托事件处理程序,如下所示:

$(document).on('click', '.fold', function(e) {
    // do stuff
});

请注意,为了获得最佳性能,您应该将
文档
替换为
.fold
元素所附加到的元素的选择器。

您所追求的概念称为事件委派,有几种方法可以做到这一点(有些方法取决于您使用的jQuery版本)。更有效地使用事件委派需要更多关于标记的知识,因为它涉及到将事件处理程序添加到与
class=“.fold”
元素最近的公共祖先。这相当于OP已经拥有的,并且不会在动态附加上工作elements@RoryMcCrossan为什么它不能处理动态附加的元素?@Arvind07在附加元素之后,您需要以某种方式将其添加到元素中,因为
单击
处理程序只会在页面加载时分配给DOM中的元素。除非您像我的回答中那样在上使用
,否则加载后附加的任何事件处理程序都不会有事件处理程序。@JanDvorak true,我是这样假设的,但除非OP另有规定,否则这是一个非常常见的假设:)立即启动。非常感谢:-)@CJe没问题,很乐意帮忙。
$(document).on('click', '.fold', function(e) {
    // do stuff
});