#10976 closed bug (cantfix)
ie7/8 seem to have problems with a[href="#"]
Reported by: | 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 11 years ago by
comment:2 Changed 11 years ago by
Component: | unfiled → event |
---|---|
Priority: | undecided → high |
Status: | new → open |
Confirmed. IE7/8
comment:3 Changed 11 years ago by
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/
http://jsbin.com/efalod/7/edit#javascript,html
also doesn't appear to work for a regular selector