2011-11-03 94 views
11

我看到「SCRIPT3:會員找不到」。 IE <中的錯誤9。查看各個位置(例如,Member not found IE error (IE 6, 7, 8, 9)),似乎發生在.hover()部分內的setTimeout處。IE <9顯示顯示「找不到會員」

我按照步驟但仍然有同樣的問題。我會很樂意提供任何幫助。

也許它也可能發生在change() FN內的地方。

我已經把整個代碼爲:http://jsfiddle.net/f4tZQ/

+0

您可以將您的編輯添加爲答案嗎? – 2011-11-03 11:10:40

+0

在jquery-1.6.2.js文件的第3172行中,我註釋了'e.cancelBubble = true; '並插入 'if(typeof e.cancelBubble!=='unknown'){e.cancelBubble = true; ''。換句話說,對原始jquery文件進行一些修改。 – maan81

+0

對不起。想添加代碼:註釋掉--e.cancelBubble = true;'並插入 - if(typeof e.cancelBubble!=='unknown'){e.cancelBubble = true; }' – maan81

回答

6

之後的某個搜索,我似乎被jQuery的錯誤的影響。在「comment:4」之後,更改jQuery-1.6.2.js文件,第3172行解決了這個問題。

if (typeof e.cancelBubble !== 'unknown') { e.cancelBubble = true; } 

不要問爲什麼,但它的工作...出於某種原因的jQuery或IE瀏覽器返回的「未定義」代替 「未知」在這裏。

索取:

來源:http://bugs.jquery.com/ticket/10004

+0

請參閱我的問題以獲取有關「IE中未知」的更多信息:http://stackoverflow.com/questions/10982739/typeof-returning-unknown-in-ie –

+3

編輯JQuery是一個壞主意。 – Nicknameless

8

對於其他人誰到這裏不想修改jQuery的源誰...(對上帝的愛不這樣做)

發生自定義事件時發生在ie <中。如果您在事件發生之前有權訪問事件,例如崩潰,則沿着原始事件鏈向下並設置最後一個= {};

下面的代碼適用於當您依賴jQuery來處理事件處理程序返回值(false)某處的鏈。如果您想在此取消活動,請參閱評論 - 在try/catch塊中打電話給e.stopPropagation()

var handleAndFire = function(e) { 
var ev = new $.Event('stack.overflow'); 

    //you may have to debug and manually inspect to see how 
    //deep the originalEvents go 
    //or you could write your own function to traverse 
    //depth first and find it automatically, I'm lazy. 
    e.originalEvent.originalEvent = {}; //fix for ie < 9 
    ev.originalEvent = e; 
    $(document).trigger(ev);  
} 
$(document).click(handleAndFire); 
+2

不錯。我發現在我的情況下,修改'e.originalEvent.originalEvent'打破了'stopPropagation()'調用(沒有崩潰,但也沒有傳播停止),這是首先崩潰的根源。我最終通過在try/catchall中包裝調用來解決問題:'try {event.stopPropagation(); } catch(e){} – Simon

+0

這是調用event.stopPropagation()的一個很好的解決方法,但是如果您返回false並讓jQuery自行停止,則不起作用。 – scaryman