X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fevent.js;h=0128dc5999ddefe5aa68d46a05ef8f0f453050a6;hb=01f72026ec939e87da85a7afc1a5262872ea3ce5;hp=31ab8a30f2442ce7ebfea867a57675e070a00e89;hpb=b9ca1579987ab08a7db21a8a0b64f65727f54011;p=jquery.git diff --git a/src/event.js b/src/event.js index 31ab8a3..0128dc5 100644 --- a/src/event.js +++ b/src/event.js @@ -838,23 +838,38 @@ jQuery.fn.extend({ hover: function( fnOver, fnOut ) { return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); - }, + } +}); + +jQuery.each(["live", "die"], function( i, name ) { + jQuery.fn[ name ] = function( types, data, fn ) { + var type, i = 0; - live: function( type, data, fn ) { if ( jQuery.isFunction( data ) ) { fn = data; data = undefined; } - jQuery( this.context ).bind( liveConvert( type, this.selector ), { - data: data, selector: this.selector, live: type - }, fn ); + types = types.split( /\s+/ ); - return this; - }, + while ( (type = types[ i++ ]) ) { + type = type === "focus" ? "focusin" : // focus --> focusin + type === "blur" ? "focusout" : // blur --> focusout + type === "hover" ? types.push("mouseleave") && "mouseenter" : // hover support + type; + + if ( name === "live" ) { + // bind live handler + jQuery( this.context ).bind( liveConvert( type, this.selector ), { + data: data, selector: this.selector, live: type + }, fn ); - die: function( type, fn ) { - jQuery( this.context ).unbind( liveConvert( type, this.selector ), fn ? { guid: fn.guid + this.selector + type } : null ); + } else { + // unbind live handler + jQuery( this.context ).unbind( liveConvert( type, this.selector ), fn ? { guid: fn.guid + this.selector + type } : null ); + } + } + return this; } });