Bug Tracker

Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#10976 closed bug (cantfix)

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

Reported by: jacob@… Owned by:
Priority: low Milestone: None
Component: core Version: 1.7.1
Keywords: Cc:
Blocked by: Blocking:

Description

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

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

thanks!

Change History (5)

comment:1 Changed 7 years ago by anonymous

http://jsbin.com/efalod/7/edit#javascript,html

also doesn't appear to work for a regular selector

comment:2 Changed 7 years ago by Rick Waldron

Component: unfiledevent
Priority: undecidedhigh
Status: newopen

comment:3 Changed 7 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 7 years ago by timmywil

that's exactly right. Also see #10745

comment:5 Changed 7 years ago by anonymous

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

Note: See TracTickets for help on using tickets.