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