3 ms·
The function in the click handler does take a parameter 'e' (...or whatever you call it) which is an Event object. But I think you're on to something by using c
by Timmy_C 16y ago
The function in the click handler does take a parameter 'e' (...or whatever you call it) which is an Event object. But I think you're on to something by using currying.
- theoretical 16y agoWell yes, the function is called with a MouseEvent as one of the arguments, so you could use the "arguments" object to access it. 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); }