jQuery实时处理程序,但每个()?

时间:2010-08-11 17:04:06

标签: javascript jquery dom javascript-events jquery-selectors

我知道live()可用于支持当前AND“稍后添加”DOM元素的事件处理程序。

我想知道如何用each()做同样的事情?

就像我有$('。something_or_other')。each()然后另一个带有class =“something_or_other”的DOM元素被添加?如何将其设置为自动将每次迭代应用于此新DOM元素?

或者,在添加新DOM元素以重新应用each()规则后,我可以调用什么。

(显示我的年龄,但在行为中我们可以使用Behaviour.apply()重新应用所有规则!)

2 个答案:

答案 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。

它需要额外的开销,但这是一个选择。

http://brandonaaron.net/code/livequery/docs