2011-11-03 21 views
11

「SCRIPT3:Member not found」と表示されています。 IE <のエラー9。さまざまな場所を見ると(例えば、Member not found IE error (IE 6, 7, 8, 9))、それはsetTimeout.hover()部分にあるように見えます。IE <9が表示され、「メンバーが見つかりませんでした」

私は同じ手順を繰り返しましたが、同じ問題があります。私はどんな助けでも素晴らしいだろう。

おそらく、change() fn内の場所で発生する可能性があります。

私が全体のコードを配置している:いつか検索した後http://jsfiddle.net/f4tZQ/

+0

あなたは答えとして、あなたの編集を追加することができますか? –

+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のバグの影響を受けているようです。 「コメント:4」の後、jQuery-1.6.2.jsファイルを変更すると、3172行目で問題が解決されました。

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

はなぜ聞かないでください、それが働いた...何らかの理由でjQueryのか、IEは「未定義」の代わりに、ここで 「不明」を返します。

出典:から得られる

jQueryのソースを変更する必要はありませんここに来る他の人のためにhttp://bugs.jquery.com/ticket/10004

+0

IEの"不明 "に関する詳細について私の質問を参照してください:http://stackoverflow.com/questions/10982739/typeof-returning-unknown-in-ie –

+3

編集JQueryは悪い考えです。 – Nicknameless

8

...(GOD OF LOVE FOR THATをしないでください)

これは、カスタムイベントを発生させるとき、つまり< 9に起こります。つまり、クラッシュするポイントに達する前にイベントにアクセスできる場合は、元のイベントチェーンを移動し、最後のイベントチェーンを設定します。

以下のコードは、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

関連する問題