Bug Tracker

Opened 11 years ago

Closed 11 years ago

Last modified 10 years ago

#7359 closed enhancement (wontfix)

Cannot detect mouse position over a disabled field in Firefox

Reported by: [email protected] Owned by:
Priority: low Milestone: 1.5
Component: event Version: 1.4.3
Keywords: Cc:
Blocked by: Blocking:

Description

Seems I can't detect the mouseX or mouseY while over a disabled form field. Works in IE, but not Firefox. Example

Change History (15)

comment:1 Changed 11 years ago by jitter

This isn't a jQuery bug IMO.

It works in IE and Opera but doesn't in Firefox and Chrome (so I guess it also won't work in Safari).

Without digging too deep I found this oooold bug report for FF. But from the looks of it this will never ever be fixed.

So it seems like you hit a specific behavior which varies between browsers. FF and Chrome don't accept/generate/pass-on any mouse-events when over a disabled element. While Opera and IE do.


In case you really depend on this specific code working crossbrowser:

This bug in FF also was a problem for the developer of Firebug (Firebug relies on mouse-events to know which element you want to inspect). They solved it by putting a proxy-div-overlays over the disabled elements. Firebug bug report and solution (css + js)


In case the original link becomes unavailable sometime I ported the test case to jsfiddle

Last edited 11 years ago by jitter (previous) (diff)

comment:2 Changed 11 years ago by snover

Resolution: wontfix
Status: newclosed

Unfortunately, there really isn’t anything that jQuery can do about this. Not even using capturing works; both Firefox and WebKit just suck it into a big black hole of nothingness.

comment:3 in reply to:  2 ; Changed 11 years ago by [email protected]

Replying to snover:

Unfortunately, there really isn’t anything that jQuery can do about this. Not even using capturing works; both Firefox and WebKit just suck it into a big black hole of nothingness.


I made a workaround that I think works in all browsers. If you would like to see - http://jsfiddle.net/Jason/Hg2SK/7/

comment:4 in reply to:  3 Changed 11 years ago by jitter

Replying to [email protected]:

I made a workaround that I think works in all browsers. If you would like to see - http://jsfiddle.net/Jason/Hg2SK/7/

Excatly what I was talking about. A similar thing was done by the developer of Firebug. This works for me in FF and Chrome.

comment:5 Changed 11 years ago by Rick Waldron

Component: unfiledevent
Keywords: needsreview added
Priority: undecidedlow
Resolution: wontfix
Status: closedreopened
Type: bugenhancement

I'm changing this to an "enhancement" that is up for review.

comment:6 in reply to:  5 Changed 11 years ago by jitter

Replying to rwaldron:

I'm changing this to an "enhancement" that is up for review.

Hmm, I don't think this should become an enhancement to the jQuery Core.

The proxy divs work well enough if you really need this. But I feel this to be too intrusive to include in general.

A jQuery plugin IMO is the right way to handle this.

Version 0, edited 11 years ago by jitter (next)

comment:7 Changed 11 years ago by Rick Waldron

My reasoning is that jQuery does provide cross-browser normalization for unexpected incompatibilities. I think this particular one should at least be discussed - if it is dismissed outright, that is certainly fine as well.

comment:8 Changed 11 years ago by Rick Waldron

#7379 is a duplicate of this ticket.

comment:9 Changed 11 years ago by Rick Waldron

#7379 is More evidence to support the discussion of adding workaround support for this issue.

comment:11 Changed 11 years ago by [email protected]

To eliminate cross-browser behavior inconsistencies, I added a client-side-generated transparent gif to the overlay. For example, Internet Explorer could not detect a click on a disabled field, but Firefox could. The transparent image (1px x 1px scaled to 100% x 100%) filled the void of the empty container, I suppose. It's been tested in all browsers. http://jasonlau.biz/jquery.detectmouseoverdisabled/

comment:12 Changed 11 years ago by dmethvin

Keywords: needsreview removed
Resolution: wontfix
Status: reopenedclosed

A plugin seems like a great way to fix this, thanks jason_lau!

comment:13 Changed 11 years ago by Rick Waldron

@dmethvin +1!

@jason_lau - how about putting your work up on github :D

comment:14 Changed 11 years ago by anonymous

@ rwaldron Done. Thanks for the suggestion. jasonlau at github.com

Note: See TracTickets for help on using tickets.