0

非常に単純なjQueryホバー機能を設定しましたが、トリガーdivにカーソルを合わせると機能しますが、トリガーdiv(オーバーラップ)にマウスを置いたままターゲットdivにマウスを移動すると、ちらつきます!? 何か案は?

私はこのjQueryコードを持っています:

            $("#tag").hover(
              function () {
                $("#homeHover").show();
              }, 
              function () {
                $("#homeHover").hide();
              }
            );

この HTML 構造では:

<div id="homeHover"></div>
<div id="tag">

</div>

そしてこのCSS:

#homeHover {
width: 150px;
height: 150px;
position: absolute;
background: url("../img/arrow.png") no-repeat scroll 0 0 transparent;
top: 145px;
left: 0px;
display: none;
}
#tag {
float: left;
}
4

2 に答える 2

2

ターゲットの div に移動すると、トリガー div の mouseenter および mouseleave イベントをトリガーできます。これでちらつきが止まります。

$("#homeHover").on({
    mouseenter: function(){
        // Trigger #tag hover to stop flickering
        $('#tag').mouseenter();
    }

    mouseleave: function(){
        // Trigger #tag mouseleave
        $('#tag').mouseleave();
    }
});
于 2012-04-03T21:15:11.743 に答える
0
$(document).mouseover(function(e) {
    if (e.target == $("#homeHover").get(0) || e.target == $("#tag").get(0)) {
        $("#homeHover").show();
    }
    else {
        $("#homeHover").hide();
    }

});
于 2011-02-01T15:10:42.460 に答える