Bug Tracker

Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#10976 closed bug (cantfix)

ie7/8 seem to have problems with a[href="#"]

Reported by: [email protected] Owned by:
Priority: low Milestone: None
Component: core Version: 1.7.1
Keywords: Cc:
Blocked by: Blocking:


Here's a test case http://jsbin.com/efalod/3

Seems to only be a problem with adding the element dynamically.


Change History (5)

comment:1 Changed 11 years ago by anonymous


also doesn't appear to work for a regular selector

comment:2 Changed 11 years ago by Rick Waldron

Component: unfiledevent
Priority: undecidedhigh
Status: newopen

comment:3 Changed 11 years ago by dmethvin

Component: eventcore
Priority: highlow
Resolution: cantfix
Status: openclosed

It's a problem with .is(), which is used by the event delegation:

alert($("a").is('a[href="#"]'));  // false

And it's because of the old problem with IE6/7 creating a full URL for an href:

alert($("a").attr('href'));  // "http://fiddle.jshell.net/_display/#"

When we use .innerHTML to create an element (as is being done here when you specify a string) it will munge the href before we can do anything about it. If this is in the actual HTML markup we are able to use the .getAttribute("href", 2) hack to get the real unmunged href but that's not an option here.

Workaround 1: Use $=: http://jsfiddle.net/7zQDR/2/

Workaround 2: Use explicit .attr(): http://jsfiddle.net/7zQDR/4/

comment:4 Changed 11 years ago by timmywil

that's exactly right. Also see #10745

comment:5 Changed 11 years ago by anonymous

Thank's for the "$=" workaround - great idea

Note: See TracTickets for help on using tickets.