]> source.dussan.org Git - jquery.git/commitdiff
Move initialization of event until we determine if anyone wants it.
authorDave Methvin <dave.methvin@gmail.com>
Mon, 11 Apr 2011 15:15:00 +0000 (11:15 -0400)
committerDave Methvin <dave.methvin@gmail.com>
Mon, 11 Apr 2011 15:15:00 +0000 (11:15 -0400)
src/event.js

index 3d19e50c2bea1a1ab69285c6236637199f3e3383..95f305babe8fc6f6fba1303074711c297233f91b 100644 (file)
@@ -289,35 +289,38 @@ jQuery.event = {
        trigger: function( event, data, elem ) {
                // Event object or event type
                var type = event.type || event,
-                       namespaces = [];
-
-               event = typeof event === "object" ?
-                       // jQuery.Event object
-                       event[ jQuery.expando ] ? event :
-                       // Object literal
-                       jQuery.extend( jQuery.Event(type), event ) :
-                       // Just the event type (string)
-                       jQuery.Event(type);
+                       namespaces = [],
+                       exclusive;
 
                if ( type.indexOf("!") >= 0 ) {
-                       // Exclusive events trigger only for the bare event type (no namespaces)
-                       event.type = type = type.slice(0, -1);
-                       event.exclusive = true;
+                       // Exclusive events trigger only for the exact event (no namespaces)
+                       type = type.slice(0, -1);
+                       exclusive = true;
                }
                if ( type.indexOf(".") >= 0 ) {
                        // Namespaced trigger; create a regexp to match event type in handle()
                        namespaces = type.split(".");
-                       event.type = type = namespaces.shift();
+                       type = namespaces.shift();
                        namespaces.sort();
                }
-               event.namespace = namespaces.join(".");
-               event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)");
 
                if ( jQuery.event.customEvent[ type ] && !jQuery.event.global[ type ] ) {
                        // No jQuery handlers for this event type, and it can't have inline handlers
                        return;
                }
 
+               // Caller can pass in an Event, Object, or just an event type string
+               event = typeof event === "object" ?
+                       // jQuery.Event object
+                       event[ jQuery.expando ] ? event :
+                       // Object literal
+                       jQuery.extend( jQuery.Event(type), event ) :
+                       // Just the event type (string)
+                       jQuery.Event(type);
+               event.namespace = namespaces.join(".");
+               event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)");
+               event.exclusive = exclusive;
+
                // Handle a global trigger
                if ( !elem ) {
                        // Don't bubble custom events when global (to avoid too much overhead)