Bug Tracker

Opened 13 years ago

Closed 13 years ago

Last modified 12 years ago

#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:
Blocked by: Blocking:

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:

... + (e.scrollLeft
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 event.pageY = event.clientY + (e && e.scrollTop
b.scrollLeft);
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 (4)

comment:1 Changed 13 years ago by suv4x4

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.

comment:2 Changed 13 years ago by john

Component: ajaxevent
Summary: Weird object detectionMouse Event Error in IE in 1.1.3.1

The best fix that I've seen for this is:

e && e.scrollLeft || b && b.scrollLeft || 0

comment:3 Changed 13 years ago by john

Owner: set to brandon

comment:4 Changed 13 years ago by brandon

Resolution: fixed
Status: newclosed

Fixed in Rev [2419].

Note: See TracTickets for help on using tickets.