Added back in Joern's changes - oops! Let me know if I missed any.
authorJohn Resig <jeresig@gmail.com>
Sat, 23 Dec 2006 06:17:16 +0000 (06:17 +0000)
committerJohn Resig <jeresig@gmail.com>
Sat, 23 Dec 2006 06:17:16 +0000 (06:17 +0000)
src/jquery/jquery.js

index af72969..358c165 100644 (file)
@@ -162,6 +162,8 @@ var $ = jQuery;
  * technically, chainable - there really isn't much use for chaining against it.
  * You can have as many $(document).ready events on your page as you like.
  *
+ * See ready(Function) for details about the ready event. 
+ * 
  * @example $(function(){
  *   // Document is ready
  * });
@@ -2100,9 +2102,6 @@ jQuery.extend({
 
                        event = jQuery.event.fix( event || window.event || {} ); // Empty object is for triggered events with no data
 
-                       // If no correct event was found, fail
-                       if ( !event ) return false;
-
                        var returnValue = true;
 
                        var c = this.events[event.type];
@@ -2125,20 +2124,19 @@ jQuery.extend({
                },
 
                fix: function(event) {
-                       // check IE
-                       if(jQuery.browser.msie) {
-                               // fix target property, if available
-                               // check prevents overwriting of fake target coming from trigger
-                               if(event.srcElement)
-                                       event.target = event.srcElement;
-                                       
-                               // calculate pageX/Y
+                       // Fix target property, if necessary
+                       if ( !event.target && event.srcElement )
+                               event.target = event.srcElement;
+
+                       // Calculate pageX/Y if missing and clientX/Y available
+                       if ( typeof event.pageX == "undefined" && typeof event.clientX != "undefined" ) {
                                var e = document.documentElement, b = document.body;
                                event.pageX = event.clientX + (e.scrollLeft || b.scrollLeft);
                                event.pageY = event.clientY + (e.scrollTop || b.scrollTop);
+                       }
                                        
-                       // check safari and if target is a textnode
-                       } else if(jQuery.browser.safari && event.target.nodeType == 3) {
+                       // Check safari and if target is a textnode
+                       if ( jQuery.browser.safari && event.target.nodeType == 3 ) {
                                // target is readonly, clone the event object
                                event = jQuery.extend({}, event);
                                // get parentnode from textnode
@@ -2146,15 +2144,17 @@ jQuery.extend({
                        }
                        
                        // fix preventDefault and stopPropagation
-                       if (!event.preventDefault)
+                       if (!event.preventDefault) {
                                event.preventDefault = function() {
                                        this.returnValue = false;
                                };
+                       }
                                
-                       if (!event.stopPropagation)
+                       if (!event.stopPropagation) {
                                event.stopPropagation = function() {
                                        this.cancelBubble = true;
                                };
+                       }
                                
                        return event;
                }