On 2/27/06, Martin Bialasinski <[EMAIL PROTECTED]> wrote: > I would like to share a modification to bindAsEventListener() that > might be useful to some of you. It makes it possible to do > > function show(event, number) { > alert(Event.element(event).id + " = " + number); > } > > Event.observe("el1", "click", show.bindAsEventListener(this, 5); > Event.observe("el2", "click", show.bindAsEventListener(this, 10); > > That will alert "el1 = 5" when el1 is clicked and "el1 = 10" when el2 > is clicked. > > The changed function: > > Function.prototype.bindAsEventListener = function(object) { > var __method = this; > var argumente = $A(arguments); > argumente.shift(); // remove "object" from the list => just the > additional arguments remain > return function(event) { > var ar = argumente.slice(0); // copy values > ar.unshift(event || window.event); > return __method.apply(object, ar); > } > }
The plain old Function.prototype.bind() provides this exact functionality. If you want to put that into bindAsEventListener, I'd recommend using the same variable names/techniques rather than reinventing them. Todd _______________________________________________ Rails-spinoffs mailing list Rails-spinoffs@lists.rubyonrails.org http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs