From f5f6cbc8c0b6441fb1d106749f7124659a3816f0 Mon Sep 17 00:00:00 2001 From: John Resig Date: Sun, 16 Jul 2006 00:52:30 +0000 Subject: [PATCH] Fixed issues with oneEvent events. --- event/event.js | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/event/event.js b/event/event.js index 0c7b0b1b..70cfb869 100644 --- a/event/event.js +++ b/event/event.js @@ -120,17 +120,18 @@ new function(){ // Finally, handle events that only fire once jQuery.fn["one"+o] = function(f){ // Attach the event listener - return this.bind(o, function(e){ - // TODO: Remove the event listener, instead of this hack + return this.each(function(){ + + var count = 0; + + // Add the event + jQuery.event.add( this, o, function(e){ + // If this function has already been executed, stop + if ( count++ ) return; - // If this function has already been executed, stop - if ( this[o+f] !== null ) return; - - // Otherwise, mark as having been executed - this[o+f]++; - - // And execute the bound function - return f.apply(this, [e]); + // And execute the bound function + return f.apply(this, [e]); + }); }); };