livequery已被弃用

时间:2011-10-06 14:10:59

标签: javascript jquery livequery

我在看旧代码。我看到对于添加了ajax的元素,有很多livequery代码。使用较新版本的jquery不再需要livequery吗?有谁知道在哪个版本之后不需要它?

$("#somediv").livequery(function(){
    $(this).click(function(){

    });
});

2 个答案:

答案 0 :(得分:11)

livequery.live()完全不同。

.live()方法使用事件委派来处理页面上任何位置发生的事件。

当发生DOM更改时,

livequery将调用处理程序(通过jQuery方法)

对于下面的示例,当将具有class="some_class"的元素添加到DOM(或将类添加到元素中)时,将运行第一个处理程序。删除时,第二个。

$('.some_class').livequery( function() {

       // apply a plugin to the element
    $(this).somePlugin();

}, function() {

    // clean up after the element was removed

});

livequery实际的需求应该很少,但在极少数情况下,您需要响应DOM更改,并且无法控制导致这些更改的jQuery,它很有用。

答案 1 :(得分:3)

您必须使用on()并将事件附加到父级或正文。例如:

$('#obj').livequery('click', function() { ... });
$('#obj').livequery(function() { ... });

成为

$('body').on('click', '#obj', function() { ... });
$('body').on('DOMNodeInserted','#obj', function() { ... });

请注意,DOMNodeInserted是IE9 +