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 comment:1
Changed December 07, 2011 10:46PM UTC by comment:2
component: | unfiled → event |
---|---|
priority: | undecided → high |
status: | new → open |
Confirmed. IE7/8
Changed December 07, 2011 11:24PM UTC by comment:3
component: | event → core |
---|---|
priority: | high → low |
resolution: | → cantfix |
status: | open → closed |
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 09:19PM UTC by comment:5
Thank's for the "$=" workaround - great idea
http://jsbin.com/efalod/7/edit#javascript,html
also doesn't appear to work for a regular selector