A lil snippet I borrowed from the Google AJAX libraries API:
chain = function(args) { return function() { for(var i = 0; i < args.length; i++) { args[i](); } } };You're probably familiar with the multiple window onload method written by Simon Willison which creates a closure of functions within functions in order to chain them.
Here is the same functionality using the
chain
function defined above.
function addLoad(fn) { window.onload = typeof(window.onload) != 'function' ? fn : chain([onload, fn]); };Chain can also be namespaced to the
Function.prototype
if thats how you like your JS.
Function.prototype.chain = function(args) { args.push(this); return function() { for(var i = 0; i < args.length; i++) { args[i](); } } };So the multiple window onload function would be:
window.addLoad = function(fn) { window.onload = typeof(window.onload) != 'function' ? fn : window.onload.chain([fn]); };
1 comment:
Post a Comment