2013-10-21 41 views
2

這個基本的jQuery點擊攔截似乎並不在IE工作與jQuery 1.10.2:jQuery 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/(這是jQuery的1.10.1在JSFiddle上,但我在我的開發站點上看到了相同的效果)。

適用於Chrome,Safari,FF。在IE9或IE10中不起作用。它沒有在IE中工作,如果我恢復到jQuery 1.9.x

我錯過了什麼或是jQuery 1.10.2失敗嗎?

+1

等待 - 我認爲這可能是JSFiddle的問題。當我選擇1.10.1 – Ade

+0

似乎與1.10.2 http://jsfiddle.net/YfRMR/10/ – sofl

+0

一起工作時,我得到''''是未定義的,這很奇怪......我沒有看到任何東西在IE中的源代碼會導致它。我得到了「拒絕訪問」,但它不是一個http vs https問題,並且代碼位於標題中,而不是正文, –

回答

1

事實證明,JSFiddle問題是一個紅鯡魚。上述代碼在JSFiddle之外的正常情況下似乎可以在IE10中正常工作。

我有問題(在非剝離下來的原始標記)被認爲有2隱藏UL之上(在z-index的條款)我的鏈接,使用隱藏:

opacity: 0; 
pointer-events: none; 

但是IE10不支持指針事件for non SVG elements,所以點擊是在IE中點擊隱藏的元素。

我會使用display: none;,但這可以防止發生CSS不透明度轉換,除非您在JavaScript中引入延遲(現在我會疲倦地做)。