What I was thinking of, was something along the lines of:
// From http://ejohn.org/blog/partial-functions-in-javascript/ Function.prototype.curry = function() { var fn = this, args = Array.prototype.slice.call(arguments); return function() { return fn.apply(this, args.concat( Array.prototype.slice.call(arguments))); }; }; els = document.getElementsByTagName('li'); for(i=0; i < els.length; i++){ els[i].addEventListener('click', function(x){ alert(x); }.curry(i), false); }
What I was thinking of, was something along the lines of: