5

jQuery 1.8.3 で動作する関数がありますが、1.9.1 にアップグレードすると動作しなくなりますが、ドキュメントに変更はありません。誰かがこれを修正する方法を知っていますか?

$(document).on("hover", "#cart-left", function(){
    $("#cart").addClass('active');
});

http://jsfiddle.net/michalcerny/R9HZp/

ご支援ありがとうございます!

4

3 に答える 3

5

hover速記の状態

jQuery 1.8 以降、hover短縮形は非推奨になりました。jQueryのon()ドキュメントを参照してください。

jQuery 1.8 で非推奨: 「hover」という名前は、文字列「mouseenter mouseleave」の短縮形として使用されます。

jQuery 1.9 の時点で、hover省略形はサポートされていませんjQuery 1.9 アップグレード ガイドを参照してください。

あなたの場合、それはmouseenterイベントを使用する必要があることを意味します。例えば:

$(document).on("mouseenter", "#cart-left", function(){
     $("#cart").addClass('active');
});

jsFiddle のデモを見る

のより良い使い方on()

on()渡されたセレクターがDOM に動的に (つまり、ページの読み込み後に) 追加される要素を参照しない限り、ハンドラーをに委譲する必要がないことにも注意してくださいdocument。代わりに、この場合、次のようにハンドラー関数を要素に直接バインドできます。

$("#cart-left").on("mouseenter", function(){
    $("#cart").addClass('active');
});
于 2013-02-12T10:19:52.570 に答える
2

問題は「on」関数ではなく、1.9.1で非推奨(および削除)された「ホバー」疑似イベントにあります:http://jquery.com/upgrade-guide/1.9/#hover-疑似イベント

于 2013-02-12T10:22:19.590 に答える