I am appending content to a list using:
$('a.ui-icon-cart').click(function(){
$(this).closest('li').clone().appendTo('#cart ul');
});
I want to perform further functions to the appended content (change class, apply animations etc)
How can I perform a callback on this function that will allow me to perform functions on the appended data?
In jquery you could use $() just after your appending contents code. This way you can be sure that the content is loaded and the DOM is ready before performing any tasks on the appended content.
$() calls a function that either registers a DOM-ready callback (if a function is passed to it) or returns elements from the DOM (if a selector string or element is passed to it)
You can find more here
difference between $ and $() in jQuery
http://api.jquery.com/ready/
Unfortunatly adding callbacks to dom operations is not something that can be done in a neat fashion using javascript. For this reason it is not in the jQuery library. A settimeout with the timer "1ms" however always puts the function in the settimeout on the bottom of the call stack. This does work! The underscore.js library uses this technique in _.defer, which does exactly what you want.
jQuery's
.each()
takes a callback function and applies it to each element in the jQuery object.Imagine something like this:
You could also just store the result and work on it instead:
I would also suggest that instead of mofiying the CSS like that you just add a class to your cloned li like this:
Then setup some styles like:
You can just keep chaining further operations at the semicolon.
etc