使用JQuery ajax在DOM操作之后附加事件

var*_*uog 7 javascript ajax jquery dom

如何使用ajax响应操作dom后附加所有事件.我有一个ajax请求获取一个html响应,它基本上是一个html的片段.该片段HTML有很多按钮.我想刷新dom,因此先前声明的和附加的事件也应用于该片段.我不想继续使用jquery on()为每个按钮添加每个事件.怎么办呢?

jfr*_*d00 10

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

$("static parent selector").on('click', 'selector for dynamic element', fn);
Run Code Online (Sandbox Code Playgroud)

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

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