For good hard code, use the jQuery $.Deferred.pipe() chain, as described here
You should get something like this:
var med = { imgLoadTime: 2000, currentPage: '', css : {left: '50%'}, animOptions: { duration: 1000, easing: 'easeOutQuart' }; runAnimations: function() { if(med.currentPage == '#slide5') { $.Deferred(function(dfr) { dfr.pipe(function() { return $('#asset-1').animate( med.css, med.animOptions ); }).pipe(function() { return $('#asset-2').animate( med.css, med.animOptions ); }).pipe(function() { return $('#asset-3').animate( med.css, med.animOptions ); }) }).resolve(); } } };
untested
Get deferral freezes and you will never look back.
If the med object is important for other reasons, it would be easier to just have runAnimations() rather than an object wrapper:
function runAnimations() { var imgLoadTime = 2000, currentPage = '', css = {left: '50%'}, animOptions = { duration: 1000, easing: 'easeOutQuart' }; if(currentPage == '#slide5') { $.Deferred(function(dfr) { dfr.pipe(function() { return $('#asset-1').animate( css, animOptions ); }).pipe(function() { return $('#asset-2').animate( css, animOptions ); }).pipe(function() { return $('#asset-3').animate( css, animOptions ); }) }).resolve(); } }
Thus, references to fixed parameters are simple.
source share