Skip to main content

Bug Tracker

Side navigation

#10976 closed bug (cantfix)

Opened December 07, 2011 10:27PM UTC

Closed December 07, 2011 11:24PM UTC

Last modified December 08, 2011 09:19PM UTC

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

Reported by: jacob@twitter.com 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!

Attachments (0)
Change History (5)

Changed December 07, 2011 10:32PM UTC by anonymous comment:1

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

also doesn't appear to work for a regular selector

Changed December 07, 2011 10:46PM UTC by rwaldron comment:2

component: unfiledevent
priority: undecidedhigh
status: newopen

Changed December 07, 2011 11:24PM UTC by dmethvin comment:3

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/

Changed December 08, 2011 03:26PM UTC by timmywil comment:4

that's exactly right. Also see #10745

Changed December 08, 2011 09:19PM UTC by anonymous comment:5

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