2

这个基本的 jQuery 点击拦截似乎不适用于带有 jQ​​uery 1.10.2 的 IE:

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 在这里失败了?

4

1 回答 1

1

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

我遇到的问题(在未剥离的原始标记中)是我的链接顶部(就 z-index 而言)有第二个隐藏的 UL,使用以下命令隐藏:

opacity: 0;
pointer-events: none;

但是 IE10 不支持非 SVG 元素的指针事件,因此点击是点击 IE 中的隐藏元素。

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

于 2013-10-21T16:41:20.527 回答