Ticket #1402 (closed bug: fixed)
Mouse Event Error in IE in 1.1.3.1
| Reported by: | suv4x4 | Owned by: | brandon |
|---|---|---|---|
| Priority: | critical | Milestone: | 1.1.4 |
| Component: | event | Version: | 1.1.3 |
| Keywords: | Cc: | ||
| Blocking: | Blocked by: |
Description
I was having a weird error with Ext UI for jscript 1.1.1 and I identified that the jquery coders tried to "object detect" integers like this:
| b.scrollLeft); |
Now.. that's very "smart" but fails every time e.scrollLeft is zero (in IE). Makes the code jump to b.scrollLeft and this ends with "Object expected" error.
I then downloaded 1.1.3.1 and noticed someone tried to fudge the issue by shuffling the code a bit (this is line 1442 from the uncompressed distribution):
Calculate pageX/Y if missing and clientX/Y available if ( event.pageX == null && event.clientX != null ) {
var e = document.documentElement, b = document.body;
event.pageX = event.clientX + (e && e.scrollLeft b.scrollLeft); event.pageY = event.clientY + (e && e.scrollTop b.scrollTop); }
Of course this accomplishes nothing and the issue still stands. Here's my fix (good ol' fashioned "typeof"):
Calculate pageX/Y if missing and clientX/Y available if ( event.pageX == null && event.clientX != null ) {
var e = document.documentElement, b = document.body; if (typeof e.scrollLeft == 'undefined') {
event.pageX = event.clientX + b.scrollLeft; event.pageY = event.clientY + b.scrollTop;
} else {
event.pageX = event.clientX + e.scrollLeft; event.pageY = event.clientY + e.scrollTop;
}
}
Change History
Please follow the bug reporting guidlines and use jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.

Nice, the comment system fudges the code.. well I could mail you the fix if you want, but the idea is using "typeof" variable == 'undefined' and not logical or.