3

on イベントを使用して、何かの後にリンクをホバリングしているかどうかをチェックする実行中のイベントがありPOSTEDます。

$(document).on("mouseenter","#hover",function() {
    load(); 

    $("#sidebar").fadeToggle("slow");
    $("#sidebar").html('');

    $.post("ajax_search.php?type=sidebar", { sidebar : $("#search").val() }, function(get_data) {
        stop_load();

        $("#sidebar").html(get_data);
    });
});

質問

#hoverホバリングを停止すると、非表示になるようにするにはどうすればよい#sidebarですか? を投稿している#hoverので、イベントを使用しONます。

のようなものはありnotOnますか?

ありがとう!

4

4 に答える 4

5

いいえ、ありませんnotOn

しかし、 : に相当するものがありmouseenterますmouseleave

$(document).on("mouseenter","#hover",function() {
    $("#sidebar").fadeToggle("slow");
});
于 2013-04-12T22:35:15.083 に答える
2

あなたが探しているのは、マウスが入るときとマウスが離れるときに2つのイベントハンドラーを使用できるホバーイベントです。

それを達成する別の方法は次のようなものです

$(".selector").on(
{
mouseenter: function() 
{
    //stuff to do on mouseover
},
mouseleave: function()
{
    //stuff to do on mouseleave
}
});
于 2013-04-12T22:36:26.473 に答える
1

mouseleave イベントを使用してみてください。

$(document).on("mouseleave","#hover",function() {
      //Code required to hide the sidebar.
 });

また、ajax 呼び出しを遅延実行し、結果をキャッシュし、一度だけ読み込まれるようにすることを検討することもできます。

また、トグルするメソッドに依存しないでください。イベントが解決される順序が遅れた場合に備えて、mouseenter と mouseleave で fadeIn と fadeOut を明示的に使用します。

于 2013-04-12T22:36:57.713 に答える
1

方法はありませんnotOn。ただし、次の例では、mouseout関数notOnは探しているように動作します。次に例を示します。

$('#hover').on({
    mouseenter: function(){
        // perform operations when you're hovering on #hover element
        $('#sidebar').fadeIn();
    },
    mouseout: function(){
        // perform operations when you stop hovering over #hover element    
        $('#sidebar').fadeOut();    
    }
});
于 2013-04-12T22:37:32.390 に答える