2011-11-03 13 views
11

"SCRIPT3: Üye bulunamadı." IE < 9 hatası. Çeşitli konumlara bakıldığında (ör., Member not found IE error (IE 6, 7, 8, 9)), .hover() bölümünün içinde setTimeout adresinde görünmektedir.IE <9 gösteren "Üye bulunamadı" görüntüleniyor

Adımları izledim ama yine de aynı sorun yaşıyorum. Herhangi bir yardım için çok iyi olurdum.

Muhtemelen change() fn içindeki yerlerde de oluşabilir. Ben de tüm kod yerleştirdik

: bazen arama yaptıktan sonra http://jsfiddle.net/f4tZQ/

+0

yılında e.stopPropagation() için bir çağrı sarın? –

+0

jquery-1.6.2.js dosyasında 3172 satırında, e.cancelBubble = true; ve 'ifadesini eklediyseniz (typeof e.cancelBubble! == 'unknown') {e.cancelBubble = true; } Başka bir deyişle, orijinal jquery dosyasının küçük bir değişiklik. – maan81

+0

Üzgünüm. Kod eklemek istedim: yorumlandı - "e.cancelBubble = true;" ve eklenmiş - "if (typeof e.cancelBubble! == 'unknown") {e.cancelBubble = true; } ' – maan81

cevap

6

, jQuery hatadan etkilendiğini düşünüyorum. "Yorum: 4" ü izleyerek jQuery-1.6.2.js dosyasını değiştirerek 3172 numaralı satırı sorunu çözdü.

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

Nedenini sorma, ama işe yaradı ... Nedense jQuery veya IE 'tanımsız' yerine burada 'bilinmeyen' döndürür.

alınan:

Kaynak: jQuery kaynağını değiştirmek istemiyorum buraya Diğerleri için http://bugs.jquery.com/ticket/10004

+0

IE'de" bilinmeyen "hakkında daha fazla bilgi için soruma bakın: http://stackoverflow.com/questions/10982739/typeof-returning-unknown-in-ie –

+3

Düzenleme JQuery kötü bir fikirdir. – Nicknameless

8

... (TANRI'NIN SEVGİ İÇİN OLDUĞUNU YAPMAYIN) Özel olayları tetiklerken < 9 örneğinde olduğu gibi bu durum . Olayı, örneğin çöktüğü noktaya gelmeden önce erişirseniz, sadece originalEvent zincirinden aşağı doğru ilerleyin ve sonuncuyu ayarlayın = {};

Aşağıdaki kod, zincir işleyicisinin geri kalanındaki olay işleyicileri döndürme değerini (false) işlemek için jQuery'ye güveniyorsanız geçerlidir. Burada etkinliği iptal etmek istiyorsanız, yorumları görmek - Eğer cevap olarak Düzenlemenizi ekleyebileceğiniz bir try/catch bloğu

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

Güzel. "E.originalEvent.originalEvent" 'i değiştirmenin, ilk başta kilitlenme kaynağı olan benim durumumda' stopPropagation() 'çağrısını (çökme yok, ancak yayılma durmuyor) değiştirdiğini buldum. Sonunda sorunu bir try/catchall: sarma {event.stopPropagation(); catch (e) {} ' – Simon

+0

Bu, event.stopPropagation() yöntemini çağırmak için harika bir çözümdür, ancak yanlış döndüğünüzde ve jQuery'nin kendisini durdurmalarına izin verirseniz yardımcı olmaz. – scaryman