-
Notifications
You must be signed in to change notification settings - Fork 20.5k
Description
Related to: #3080
Original comment: #3080 (comment)
MouseEvent.pageX/pageYalso might be influenced.
Line 435 in 9f268ca
( doc && doc.clientLeft || body && body.clientLeft || 0 );
If nativeeventdon't havepageX/Y, these are calculated usingclientLeft/clientTop.If
htmlelement hasborder-width:10pxlike the example above, in a browser that doesn't supportevent.pageX/Yand correctclientTop/clientLeft, jQuery returns10,10aspageX/Y, when mouse is positioned at left-top-corner ofbody. In a browser that returns correctclientTop/clientLeft, jQuery returns0,0aspageX/Y.I feel that
10,10is correct result.But I don't know recent browser that doesn't support
event.pageX/Y.
Since Firefox returns 0 as clientTop/clientLeft of html element always, MouseEvent.pageX/pageY might be incorrect.
When native event object doesn't have pageX/Y, jQuery.event.mouseHooks.filter calculates these using document.documentElement.clientLeft/clientTop (i.e. border-width of html element).
(But I don't know recent browser that doesn't support event.pageX/Y.)
Represent:
https://jsfiddle.net/rent9q5g/
This simulates a browser that doesn't support event.pageX/Y.
incorrect result in Firefox by its bug, but I think pageX: 10 pageY: 10 is correct result. That is, jQuery.event.mouseHooks.filter should not subtract clientTop/clientLeft.


