I'm looking at old code. I'm seeing that for elements that get added with ajax, there's lots of livequery code. Is livequery not needed anymore with the newer versions of jquery? Does anyone know after which version exactly it's not needed?
$("#somediv").livequery(function(){
$(this).click(function(){
});
});
I'm looking at old code. I'm seeing that for elements that get added with ajax, there's lots of livequery code. Is livequery not needed anymore with the newer versions of jquery? Does anyone know after which version exactly it's not needed?
$("#somediv").livequery(function(){
$(this).click(function(){
});
});
Share
Improve this question
asked Oct 6, 2011 at 14:10
sameoldsameold
19.2k22 gold badges65 silver badges87 bronze badges
6
|
Show 1 more comment
2 Answers
Reset to default 15livequery
is an entirely different concept from .live()
.
The .live()
method uses event delegation to handle events that occur anywhere on the page.
livequery
will invoke handlers when DOM changes occur (via jQuery methods).
For the example below, when an element with class="some_class"
is added to the DOM (or the class is added to an element), the first handler will run. When removed, the second.
$('.some_class').livequery( function() {
// apply a plugin to the element
$(this).somePlugin();
}, function() {
// clean up after the element was removed
});
There should be little actual need for livequery
, but in that rare case where you need to respond to DOM changes, and have no control over the jQuery that is causing those changes, it can be useful.
You have to use on() and attach the event to a parent or body. Ex :
$('#obj').livequery('click', function() { ... });
$('#obj').livequery(function() { ... });
become
$('body').on('click', '#obj', function() { ... });
$('body').on('DOMNodeInserted','#obj', function() { ... });
note that DOMNodeInserted is IE9+
DOMNodeInserted
your either building a complex templating system or your doing it wrong. If the former then just build a simple templating system instead – Raynos Commented Feb 5, 2013 at 3:18