这个基本的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在这里失败了吗?
答案 0 :(得分:1)
事实证明,JSFiddle问题是一个红色的鲱鱼。在JSFiddle之外的正常情况下,上面的代码似乎在IE10中起作用。
我遇到的问题(在非剥离的原始标记中)是在我的链接之上存在第二个隐藏的UL(在z-index方面),隐藏使用:
opacity: 0;
pointer-events: none;
然而,IE10不支持指针事件for non SVG elements,所以点击是在IE上面的隐藏元素。
我会使用display: none;
,但是这会阻止CSS不透明度转换发生,除非你引入JavaScript延迟(我现在,我会疲倦地做)。