0

ホバリング要素、画像スワップ、スライド div、アニメーションなどを処理するために、かなり標準的な JavaScript/jQuery を使用していますが、問題ありません。「ホバー可能な」リンクされた要素をクリックすると、新しいページに移動する場合、mouseenterホバー状態は常に固定されます。

たとえば、何かの上にカーソルを置いてクリックし (別のページへのリンク)、[戻る] ボタンを使用してページに戻ると、クリックした要素のmouseenter状態は、マウスが要素の上になくなってもスタックします。 .

すべてをリセットするには、ページをリロードするか、要素を再度ホバーする必要があります。

$(document).ready(function() {
    $('.mySelector').each(function () {
        $(this).hover(enter, leave);
    });

    function enter(event) { 
        // mouseenter stuff
    };
    function leave(event) { 
        // mouseleave stuff
    };
});

数週間前にこれについて読んだことを覚えているようで、非常に簡単な修正がありましたが、それを見つけることができません。

誰かが適切な解決策に精通していますか?

ありがとうございました!

4

2 に答える 2

0

これを使用する必要はありません.each。また、関数は外部にある必要があり.readyます。

$(document).ready(function() {
    $('.mySelector').hover(enter, leave);
});

function enter(event) { 
    // mouseenter stuff
}

function leave(event) { 
    // mouseleave stuff
}

編集:変数がローカルの場合、次のようにすることができます:

$(document).ready(function() {
     $('.mySelector').hover(function(){
         // mouseenter stuff
     },
     function(){
         // mouseleave stuff
     });
});
于 2011-05-10T16:12:51.910 に答える
0

ウィンドウの「アンロード」でマウスを離す機能を呼び出すことで、ホバー効果を単に「再設定」することになりました...

$(window).unload(function() {
    leave();
});

ホバーした要素をクリックしてページを離れると、マウスがまだ要素の上にホバーしていても、 mouseleave関数が呼び出されます。ブラウザの戻るボタンを押しても、ホバー効果が「動かなくなった」状態でページに戻ることはなくなりました。

問題が解決しました。

于 2011-05-10T18:04:28.800 に答える