7

如何在使用 ajax 响应操作 dom 后附加所有事件。我有一个 ajax 请求,它得到一个基本上是 html 片段的 html 响应。该片段 HTML 有很多按钮。我想刷新 dom,因此之前声明和附加的事件也将应用到该片段中。我不想继续使用 jquery on() 为每个按钮添加每个事件。还能怎么做?

4

1 回答 1

10

您可以使用提前设置的委托事件处理,并且可以将其应用于新添加的 DOM 元素。委托事件处理.on()通常采用以下形式完成:

$("static parent selector").on('click', 'selector for dynamic element', fn);

没有干净的方法可以再次运行您的事件安装代码并使其仅适用于新添加的 DOM 元素。您必须将该代码放入一个函数中并对其进行编码,使其不会多次添加事件处理程序,然后您可以在将项目添加到 DOM 后再次调用该函数。或者,您可以让函数接受父对象的参数,并且只在新添加的 DOM 层次结构中添加事件处理程序。

这是关于委托事件处理的另一个相关答案:jQuery.on() 是否适用于在创建事件处理程序后添加的元素?

于 2013-08-24T03:46:46.733 回答