1

独自のカスタム プラグインを追加し、クリック イベント内でそのプラグインを使用しようとすると、IE (または少なくとも IE8) は関数が定義されていないと言います (エラー メッセージは「オブジェクトはこのプロパティまたはメソッドをサポートしていません。なぜですか?

    $.fn.myFunc = function() {
        alert( $(this).text() );
    };
    $('p').click(function() {
        $(this).myFunc();
    });

$(this)選択した要素に置き換えることができmyFunc、クリックイベント関数内で未定義の問題が残るため、変数に問題があるようには見えません。

4

1 に答える 1

1

このコードは IE8 で問題なく動作し、問題はアドオン (具体的には Freemake YouTube ダウンローダー) にありました。IE 開発者ツール内の [コール スタック] ボタン (非常に便利) を使用して、関数の後に呼び出されているものを見つけました。以前は jQuery の縮小版であると想定していたものから関数が呼び出されているのを確認しましたが、よく調べてみると、ロードしていなかったバージョンの場合。さらにファイルをスクロールすると (実際にはファイルではなく、ロードされた JS ブロック)、IE アドオンを自動的にインストールした YouTube ダウンローダーの関数が表示されました (IE を使用したことはありませんが、他の競合が発生した可能性があります。使用しました)、そのアドオンを無効にしました。その後、すべてが期待どおりに機能しました。

アドオン自体との競合であり、埋め込まれているjQueryのバージョンとの競合ではないことを確認するために、そのバージョン(1.8.3)を自分でロードしようとしましたが、うまくいきました.

于 2013-06-10T16:57:01.993 に答える