Ticket #2249: one+proxy.diff
| File one+proxy.diff, 1.6 kB (added by flesler, 8 months ago) |
|---|
-
core.js
-
event.js
26 26 var fn = handler; 27 27 28 28 // Create unique handler function, wrapped around original handler 29 handler = function() {29 handler = jQuery.proxy( fn, function() { 30 30 // Pass arguments and context to original handler 31 31 return fn.apply(this, arguments); 32 } ;32 }); 33 33 34 34 // Store data in unique handler 35 35 handler.data = data; 36 37 // Set the guid of unique handler to the same of original handler, so it can be removed38 handler.guid = fn.guid;39 36 } 40 37 41 38 // Init the element's event structure … … 401 398 }, 402 399 403 400 one: function( type, data, fn ) { 401 var one = jQuery.proxy( fn || data, function(event) { 402 jQuery(this).unbind(event, one); 403 return (fn || data).apply( this, arguments); 404 }); 404 405 return this.each(function(){ 405 jQuery.event.add( this, type, function(event) { 406 jQuery(this).unbind(event); 407 return (fn || data).apply( this, arguments); 408 }, fn && data); 406 jQuery.event.add( this, type, one, fn && data); 409 407 }); 410 408 }, 411 409
