在IE中jQuery 1.10.2选择器坏了吗?

时间:2013-10-21 15:24:55

标签: javascript jquery internet-explorer

这个基本的jQuery单击拦截在IE中似乎不适用于jQuery 1.10.2:

HTML

<ul id="nav">
    <li>
        <a href="/test">simple selector</a>
    </li>
</ul>

JS

$(document).ready(function (){ 
    $('#nav a').click(function (e){
          e.preventDefault();
          alert("intercepted test link");
    });
});

JSFiddle:http://jsfiddle.net/YfRMR/6/(这是JSFiddle上的jQuery 1.10.1,但我在我的开发网站上看到的效果相同)。

适用于Chrome,Safari,FF。在IE9或IE10中不起作用。如果我恢复到jQuery 1.9.x

在IE中工作

我错过了什么或jQuery 1.10.2在这里失败了吗?

1 个答案:

答案 0 :(得分:1)

事实证明,JSFiddle问题是一个红色的鲱鱼。在JSFiddle之外的正常情况下,上面的代码似乎在IE10中起作用。

我遇到的问题(在非剥离的原始标记中)是在我的链接之上存在第二个隐藏的UL(在z-index方面),隐藏使用:

opacity: 0;
pointer-events: none;

然而,IE10不支持指针事件for non SVG elements,所以点击是在IE上面的隐藏元素。

我会使用display: none;,但是这会阻止CSS不透明度转换发生,除非你引入JavaScript延迟(我现在,我会疲倦地做)。