我知道live()可用于支持当前AND“稍后添加”DOM元素的事件处理程序。
我想知道如何用each()做同样的事情?
就像我有$('。something_or_other')。each()然后另一个带有class =“something_or_other”的DOM元素被添加?如何将其设置为自动将每次迭代应用于此新DOM元素?
或者,在添加新DOM元素以重新应用each()规则后,我可以调用什么。
(显示我的年龄,但在行为中我们可以使用Behaviour.apply()重新应用所有规则!)
答案 0 :(得分:0)
为什么不能将功能绑定到将DOM元素附加到doc的ajax回调?似乎是最简短和最合乎逻辑的路线。
答案 1 :(得分:0)
正如 @meder 所指出的那样,您应该手动执行此操作。如果您愿意,可以对两者使用相同的功能。
function myFunction(i,val) {
$(this).doSomething;
}
$('someSelector').each( myFunction );
$.ajax({
url:'/some/path/',
success: function( data ) {
$(data).find('someSelector').each( myFunction )
.end().appendTo('body');
}
});
如果确实不希望这样做,那么会有一个名为livequery
的插件,当匹配选择器的元素被添加到(或从中移除)时,它将运行代码DOM。
它需要额外的开销,但这是一个选择。