我在看旧代码。我看到对于添加了ajax的元素,有很多livequery代码。使用较新版本的jquery不再需要livequery吗?有谁知道在哪个版本之后不需要它?
$("#somediv").livequery(function(){
$(this).click(function(){
});
});
答案 0 :(得分:11)
livequery
与.live()
完全不同。
.live()
方法使用事件委派来处理页面上任何位置发生的事件。
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 +