]> source.dussan.org Git - jquery.git/commitdiff
current state
authorRick Waldron <waldron.rick@gmail.com>
Fri, 23 Sep 2011 00:02:34 +0000 (20:02 -0400)
committerRick Waldron <waldron.rick@gmail.com>
Fri, 23 Sep 2011 00:02:34 +0000 (20:02 -0400)
src/event.js

index 38ed3ae91bfcf37ec72ea6689b482c680b2699e3..edc8ce5e5467d34fd7b2c6054b1b6c27937e0f86 100644 (file)
@@ -475,7 +475,7 @@ jQuery.event = {
                return event.result;
        },
 
-       props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+       props: "altKey attrName bubbles button cancelable charCode ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view which".split(" "),
 
        propHooks: {},
 
@@ -487,13 +487,17 @@ jQuery.event = {
                // store a copy of the original event object
                // and "clone" to set read-only properties
                var originalEvent = event,
-               propHook;
+               propHook = jQuery.event.propHooks[ event.type ],
+               copy = this.props;
 
                event = jQuery.Event( originalEvent );
-               propHook = jQuery.event.propHooks[ event.type ];
 
-               for ( var i = this.props.length, prop; i; ) {
-                       prop = this.props[ --i ];
+               if ( propHook ) {
+                       copy.push.apply( copy, propHook() || [] );
+               }
+
+               for ( var i = copy.length, prop; i; ) {
+                       prop = copy[ --i ];
                        event[ prop ] = originalEvent[ prop ];
                }
 
@@ -1093,6 +1097,10 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl
        if ( rmouseEvent.test( name ) ) {
                jQuery.event.propHooks[ name ] = function( event, original ) {
 
+                       if ( !event ) {
+                               return "layerX layerY clientX clientY offsetX offsetY wheelDelta".split(" ");
+                       }
+
                        var eventDoc, doc, body,
                        button = event.button;
 
@@ -1111,6 +1119,7 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl
                        if ( !event.which && button !== undefined ) {
                                event.which = (button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ));
                        }
+
                        return event;
                };
        }});