X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fevent%2Fevent.js;h=a60c4616aff29c624e66f61b69a65a84002bbeed;hb=476cbd2f1afd39e32feb350a732877c18f9f7715;hp=55e205ae2a6edc1d244eb576eae8a60f1f9f8f6c;hpb=44e4b36c083fd0728c5a73c7b71b118c336eb5d7;p=jquery.git diff --git a/src/event/event.js b/src/event/event.js index 55e205a..a60c461 100644 --- a/src/event/event.js +++ b/src/event/event.js @@ -1583,8 +1583,8 @@ new function(){ var o = e[i]; // Handle event binding - jQuery.fn[o] = function(f, amount){ - return f ? this.bind(o, f, amount) : this.trigger(o); + jQuery.fn[o] = function(f){ + return f ? this.bind(o, f) : this.trigger(o); }; // Handle event unbinding @@ -1592,8 +1592,20 @@ new function(){ // Finally, handle events that only fire once jQuery.fn["one"+o] = function(f){ - // use bind with amount param to bind only once - return this.bind(o, f, 1); + // Attach the event listener + 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 true; + + // And execute the bound function + return f.apply(this, [e]); + }); + }); }; };