X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fevent.js;h=3697e4e75efab100223ac98f3460f811fc96931b;hb=61e37d41490aed319a176c6ca7feb95e5505059c;hp=892525aeac050943febd4f4b673ba23bebc647a1;hpb=36c99dc0c7a745a88488f519b38de811d6d4c8d9;p=jquery.git diff --git a/src/event.js b/src/event.js index 892525a..3697e4e 100644 --- a/src/event.js +++ b/src/event.js @@ -1,3 +1,9 @@ +var fcleanup = function( nm ) { + return nm.replace(/[^\w\s\.\|`]/g, function( ch ) { + return "\\" + ch; + }); +}; + /* * A number of helper functions used for managing events. * Many of the ideas behind this code originated from @@ -142,7 +148,7 @@ jQuery.event = { var namespaces = type.split("."); type = namespaces.shift(); var all = !namespaces.length, - cleaned = jQuery.map( namespaces.slice(0).sort() , function(nm){ return nm.replace(/[^\w\s\.\|`]/g, function(ch){return "\\"+ch; }); }), + cleaned = jQuery.map( namespaces.slice(0).sort(), fcleanup ), namespace = new RegExp("(^|\\.)" + cleaned.join("\\.(?:.*\\.)?") + "(\\.|$)"), special = this.special[ type ] || {}; @@ -403,10 +409,15 @@ jQuery.event = { thisObject = proxy; proxy = undefined; } + // FIXME: Should proxy be redefined to be applied with thisObject if defined? - proxy = proxy || function() { return fn.apply( thisObject !== undefined ? thisObject : this, arguments ); }; + proxy = proxy || function() { + return fn.apply( thisObject !== undefined ? thisObject : this, arguments ); + }; + // Set the guid of unique handler to the same of original handler, so it can be removed proxy.guid = fn.guid = fn.guid || proxy.guid || this.guid++; + // So proxy can be declared as an argument return proxy; }, @@ -462,7 +473,7 @@ jQuery.event = { } }; -jQuery.Event = function( src ){ +jQuery.Event = function( src ) { // Allow instantiation without the 'new' keyword if ( !this.preventDefault ) { return new jQuery.Event( src ); @@ -524,7 +535,7 @@ jQuery.Event.prototype = { // otherwise set the cancelBubble property of the original event to true (IE) e.cancelBubble = true; }, - stopImmediatePropagation: function(){ + stopImmediatePropagation: function() { this.isImmediatePropagationStopped = returnTrue; this.stopPropagation(); }, @@ -575,10 +586,10 @@ jQuery.each({ mouseleave: "mouseout" }, function( orig, fix ) { jQuery.event.special[ orig ] = { - setup: function(data){ + setup: function( data ) { jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig ); }, - teardown: function(data){ + teardown: function( data ) { jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement ); } }; @@ -728,7 +739,7 @@ function trigger( type, elem, args ) { // Create "bubbling" focus and blur events if ( document.addEventListener ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ){ + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { jQuery.event.special[ fix ] = { setup: function() { this.addEventListener( orig, handler, true ); @@ -746,7 +757,7 @@ if ( document.addEventListener ) { }); } -jQuery.each(["bind", "one"], function(i, name) { +jQuery.each(["bind", "one"], function( i, name ) { jQuery.fn[ name ] = function( type, data, fn, thisObject ) { // Handle object literals if ( typeof type === "object" ) { @@ -807,7 +818,7 @@ jQuery.fn.extend({ var args = arguments, i = 1; // link all the functions, so any of them can unbind this click handler - while( i < args.length ) { + while ( i < args.length ) { jQuery.event.proxy( fn, args[ i++ ] ); }