将Javascript事件处理程序绑定到Ajax HTML响应?

将Javascript事件处理程序绑定到Ajax HTML响应?,javascript,ajax,dom-events,Javascript,Ajax,Dom Events,假设我有以下HTML代码 <div id="outer"> <div id="inner">Hello World</div> </div> 在上面的代码中,我希望helloworld 2返回,这需要我重新附加onclick事件处理程序。这很有意义,因为返回的新响应只是一个字符串,我必须告诉浏览器,在转换为DOM之后,我还需要一些事件处理程序 所以我的问题是,有没有更好的方法来管理包含HTML内容的AJAX

假设我有以下HTML代码

<div id="outer">
<div id="inner">Hello World</div>
</div>
在上面的代码中,我希望
helloworld 2
返回,这需要我重新附加
onclick
事件处理程序。这很有意义,因为返回的新响应只是一个字符串,我必须告诉浏览器,在转换为DOM之后,我还需要一些事件处理程序


所以我的问题是,有没有更好的方法来管理包含HTML内容的AJAX响应上的事件处理程序?我可以在html响应中使用内联Javascript,但它会阻止我实现非侵入式Javascript。那么,有没有一种方法可以实现非侵入式Javascript,有没有一种有效的方法可以“维护”ajax html响应的事件处理程序呢。它允许您现在和将来将事件处理程序绑定到与选择器匹配的元素。

您可以使用类似的方法。它允许您将事件处理程序绑定到现在和将来与选择器匹配的元素。

Ben Nolan创建了一个很好的框架,曾经被称为“行为”。他后来放弃了这个想法,但这个想法仍然是正确的。其想法是将事件处理程序放入“工作表”(只是javascript对象)中,并使用CSS选择器命名属性

您可以使用如下对象:

{
    '#inner': function() { ... }
}
当需要重新应用事件处理程序时,常规函数可以迭代此类对象的属性


我这里有一本旧的Behavior:你可以自由地从中汲取灵感或使用。

Ben Nolan制作了一个很好的框架,曾经被称为“Behavior”。他后来放弃了这个想法,但这个想法仍然是正确的。其想法是将事件处理程序放入“工作表”(只是javascript对象)中,并使用CSS选择器命名属性

您可以使用如下对象:

{
    '#inner': function() { ... }
}
当需要重新应用事件处理程序时,常规函数可以迭代此类对象的属性


我有一个旧的行为副本存储在这里:你可以自由地从中汲取灵感或使用。

我想如果你使用像jQuery这样的javascript框架,他们会通过.live()功能来解决这个问题,除非你想自己使用一个,我想如果你使用像jQuery这样的javascript框架,他们通过.live()功能解决了这一问题,除非您想使用自己的一个。注意到.live()从1.7开始就不推荐使用。注意到.live()从1.7开始就不推荐使用