我正在查看旧代码。我看到对于使用 ajax 添加的元素,有很多实时查询代码。较新版本的 jquery 不再需要 livequery 了吗?有谁知道在哪个版本之后不需要它?
$("#somediv").livequery(function(){
$(this).click(function(){
});
});
我正在查看旧代码。我看到对于使用 ajax 添加的元素,有很多实时查询代码。较新版本的 jquery 不再需要 livequery 了吗?有谁知道在哪个版本之后不需要它?
$("#somediv").livequery(function(){
$(this).click(function(){
});
});
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,它可能很有用。
您必须使用on()并将事件附加到父级或主体。前任 :
$('#obj').livequery('click', function() { ... });
$('#obj').livequery(function() { ... });
变得
$('body').on('click', '#obj', function() { ... });
$('body').on('DOMNodeInserted','#obj', function() { ... });
注意 DOMNodeInserted 是 IE9+