X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fevent.js;h=761665cb6b12387d5ac84d9ecfe3a638c5a15529;hb=fc08d0ea8dc881ed56102eb14e3ad9c54cccc34e;hp=bfe2dd1af0896ae87eb2641f869373a19335f45c;hpb=7f5179b65431b77e89fa32623a5000e3630c191c;p=jquery.git diff --git a/src/event.js b/src/event.js index bfe2dd1..761665c 100644 --- a/src/event.js +++ b/src/event.js @@ -25,6 +25,10 @@ jQuery.event = { elem = window; } + if ( handler === false ) { + handler = returnFalse; + } + var handleObjIn, handleObj; if ( handler.handler ) { @@ -47,7 +51,7 @@ jQuery.event = { } var events = elemData.events = elemData.events || {}, - eventHandle = elemData.handle, eventHandle; + eventHandle = elemData.handle; if ( !eventHandle ) { elemData.handle = eventHandle = function() { @@ -138,6 +142,10 @@ jQuery.event = { return; } + if ( handler === false ) { + handler = returnFalse; + } + var ret, type, fn, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType, elemData = jQuery.data( elem ), events = elemData && elemData.events; @@ -374,7 +382,8 @@ jQuery.event = { namespace = new RegExp("(^|\\.)" + namespaces.slice(0).sort().join("\\.(?:.*\\.)?") + "(\\.|$)"); } - var events = jQuery.data(this, "events"), handlers = events[ event.type ]; + events = jQuery.data(this, "events"); + handlers = (events || {})[ event.type ]; if ( events && handlers ) { // Clone the handlers to prevent manipulation @@ -511,9 +520,8 @@ jQuery.event = { if ( this.setInterval ) { this.onbeforeunload = eventHandle; } - - return false; }, + teardown: function( namespaces, eventHandle ) { if ( this.onbeforeunload === eventHandle ) { this.onbeforeunload = null; @@ -830,7 +838,7 @@ jQuery.each(["bind", "one"], function( i, name ) { return this; } - if ( jQuery.isFunction( data ) ) { + if ( jQuery.isFunction( data ) || data === false ) { fn = data; data = undefined; } @@ -972,10 +980,10 @@ jQuery.each(["live", "die"], function( i, name ) { if ( name === "live" ) { // bind live handler - context.each(function(){ - jQuery.event.add( this, liveConvert( type, selector ), + for ( var j = 0, l = context.length; j < l; j++ ) { + jQuery.event.add( context[j], liveConvert( type, selector ), { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } ); - }); + } } else { // unbind live handler @@ -984,7 +992,7 @@ jQuery.each(["live", "die"], function( i, name ) { } return this; - } + }; }); function liveHandler( event ) { @@ -1071,8 +1079,15 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl "change select submit keydown keypress keyup error").split(" "), function( i, name ) { // Handle event binding - jQuery.fn[ name ] = function( fn ) { - return fn ? this.bind( name, fn ) : this.trigger( name ); + jQuery.fn[ name ] = function( data, fn ) { + if ( fn == undefined ) { + fn = data; + data = null; + } + + return arguments.length > 0 ? + this.bind( name, data, fn ) : + this.trigger( name ); }; if ( jQuery.attrFn ) {