diff options
author | Jörn Zaefferer <joern.zaefferer@gmail.com> | 2006-11-30 20:39:33 +0000 |
---|---|---|
committer | Jörn Zaefferer <joern.zaefferer@gmail.com> | 2006-11-30 20:39:33 +0000 |
commit | d98283a3a39b2fd4d2b0986c34c92f8c7b3c4e54 (patch) | |
tree | 12dca1249199de20f5bb3c383b4b5d93ffe54ee1 | |
parent | c136717119ec986be67848ec45b56e23d77d51fd (diff) | |
download | jquery-d98283a3a39b2fd4d2b0986c34c92f8c7b3c4e54.tar.gz jquery-d98283a3a39b2fd4d2b0986c34c92f8c7b3c4e54.zip |
Fix for event fix: Don't overwrite event.target if there is no srcElement; calculate pageX/Y (tested with tooltip plugin)
-rw-r--r-- | src/jquery/jquery.js | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 689784a56..4164f6390 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -1959,9 +1959,16 @@ jQuery.extend({ fix: function(event) { // check IE if(jQuery.browser.msie) { - // fix target property - event.target = event.srcElement; - + // fix target property, if available + // check prevents overwriting of fake target coming from trigger + if(event.srcElement) + event.target = event.srcElement; + + // calculate pageX/Y + 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) { // target is readonly, clone the event object @@ -1980,7 +1987,7 @@ jQuery.extend({ event.stopPropagation = function() { this.cancelBubble = true; }; - + return event; } } |