Bug Tracker

Opened 11 years ago

Closed 10 years ago

Last modified 10 years ago

#8165 closed bug (fixed)

.live('click', handler) fires on disabled buttons with child elements in Chrome

Reported by: ms7821 Owned by: dmethvin
Priority: high Milestone: 1.7.2
Component: event Version: 1.5
Keywords: Cc: danheberden
Blocked by: Blocking:

Description

It's possible to receive events for a disabled <button> element as well as <input type="button">:

http://jsfiddle.net/Fz2F3/ (jQuery 1.4.4) http://jsfiddle.net/Fz2F3/1/ (jQuery 1.5)

IE fires click for all of them, passing the button as the target and currentTarget. This was fixed in jQuery 1.5 in http://bugs.jquery.com/ticket/6911.

Chrome fires only for the <button> with a child element, passing that as the target. However, currentTarget is set to the button, so changing target.disabled to currentTarget.disabled should extend the fix to include Chrome.

See also the first comment on http://forum.jquery.com/topic/live-inconsistency-with-disabled-buttons.

Change History (8)

comment:1 Changed 11 years ago by danheberden

Resolution: duplicate
Status: newclosed

comment:2 Changed 11 years ago by danheberden

Duplicate of #6911.

comment:3 Changed 11 years ago by danheberden

Cc: danheberden added
Component: unfiledevent
Milestone: 1.next1.5.1

comment:4 Changed 11 years ago by jitter

Priority: undecidedhigh

comment:5 Changed 10 years ago by dmethvin

Milestone: 1.5.1
Resolution: duplicate
Status: closedreopened

This bug still exists in 1.7.1, per the test case. It does look like changing to currentTarget will solve the problem.

comment:6 Changed 10 years ago by dmethvin

Milestone: 1.7.2
Owner: set to dmethvin
Status: reopenedassigned

comment:7 Changed 10 years ago by ms7821

Looks like it regressed in 1.7, probably due to #9393, which moved the liveHandler logic into handle.

Last edited 10 years ago by ms7821 (previous) (diff)

comment:8 Changed 10 years ago by Dave Methvin

Resolution: fixed
Status: assignedclosed

Fix #8165: Ignore events bubbling through disabled elements.

Although #6911 fixed the case where event.target was disabled, it missed the case where the target was a sub-element.

Changeset: 8d9025ca50603e5404c6b50f7fa6c87046ee24c1

Note: See TracTickets for help on using tickets.