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 回答