15

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

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

    });
});
4

2 回答 2

15

livequery是完全不同的概念.live()

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

livequery将在 DOM 更改发生时调用处理程序(通过 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,它可能很有用。

于 2011-10-06T14:21:39.417 回答
5

您必须使用on()并将事件附加到父级或主体。前任 :

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

变得

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

注意 DOMNodeInserted 是 IE9+

于 2016-12-22T14:16:05.057 回答