Bug Tracker

Opened 6 years ago

Closed 4 years ago

#8473 closed bug (fixed)

In IE9rc *[tabIndex] select all elements without tabindex also

Reported by: EMVI Owned by: timmywil
Priority: high Milestone: 1.8
Component: selector Version: 1.5.1
Keywords: Cc:
Blocked by: Blocking:

Description

The live events are triggert for all elements, if I remove the "*[tabIndex]" selector the events are only triggert for a and :input elements.

$('a,:input,*[tabIndex]')
    .live('focus',function(){
        this.isFocused = true;
    })
    .live('blur',function(){
        this.isFocused = false;
    })
    .live('mousedown',function(){
        // in webkit some input doesn't get focus on select by mousedown
        if( !this.isFocused ){
            this.focus();
        }
    });

Change History (7)

comment:1 Changed 6 years ago by addyosmani

  • Priority changed from undecided to low

Thanks for submitting a ticket to the jQuery Bug tracker. Could you please provide us a complete reduced test-case on jsFiddle.net that we can run to evaluate whether this issue is due to jQuery core or a bug in your implementation?

comment:2 Changed 6 years ago by EMVI

Here is the jsFiddle test-case: http://jsfiddle.net/mnqBT/3/

comment:3 Changed 6 years ago by dmethvin

  • Component changed from unfiled to selector
  • Status changed from new to open

In IE6/7 there's no querySelectorAll and the Sizzle JS engine path is looking at the tabIndex property (which exists on all elements) rather than an explicit attribute.

comment:4 Changed 5 years ago by john

  • Milestone changed from 1.next to 1.7
  • Owner set to timmywil
  • Priority changed from low to blocker
  • Status changed from open to assigned

Confirmed in bug triage.

comment:5 Changed 5 years ago by timmywil

  • Milestone changed from 1.7 to 1.8
  • Priority changed from blocker to high

Moving to 1.8. After hooking up Sizzle to jQuery.attr, everything works as we intended. One of the ways we intend it to work, however, prohibits us from fixing this bug until we can deprecate retrieving the tabIndex property with .attr('tabindex'). We currently copy over the propHook to attrHooks in order to mirror previous behavior. When we do deprecate this, it will fix this selector bug and put attr even closer to what it should be, but we will see users complain about getting undefined instead of a number when we do deprecate the tabindex attrHook. I'd like to officially deprecate it in 1.7 and remove it in 1.8 effectively killing this bug. Any objections?

comment:6 Changed 4 years ago by timmywil

#11568 is a duplicate of this ticket.

comment:7 Changed 4 years ago by timmywil

  • Resolution set to fixed
  • Status changed from assigned to closed

Remove the tabindex attrHook. Fixes #8473

Changeset: 3e2a77c5e882b5fc88bf5469ea00067833a2a059

Note: See TracTickets for help on using tickets.