Javascript mouseenter/mouseout使div闪烁

Javascript mouseenter/mouseout使div闪烁,javascript,jquery,tooltip,mouseenter,mouseout,Javascript,Jquery,Tooltip,Mouseenter,Mouseout,我有一个工具提示,显示在mouseenter事件上,隐藏在mouseout事件上。有时,并非总是,当鼠标在工具提示的图像内移动时,工具提示会闪烁。我怎样才能防止这种情况发生?有更好的方法吗 这是我的密码: $('#home_pic').mouseenter(function() { $('#home_tip').show(); }); $('#home_pic').mouseout(function() { $('#home_tip').hide(); }); 尝试mousel

我有一个工具提示,显示在mouseenter事件上,隐藏在mouseout事件上。有时,并非总是,当鼠标在工具提示的图像内移动时,工具提示会闪烁。我怎样才能防止这种情况发生?有更好的方法吗

这是我的密码:

$('#home_pic').mouseenter(function() {
    $('#home_tip').show();
});
$('#home_pic').mouseout(function() {
    $('#home_tip').hide();
});

尝试mouseleave而不是mouseout,如下所示:
使用mouseleave代替mouseout()

或者使用。悬停

 $('#home_pic').hover(function() {
        $('#home_tip').hide();
    },function() {
        $('#home_tip').show();
    });

您需要以适当的方式编写mouseenter和mouseleave函数,如下所示:

$('#home_pic').mouseenter(function() {
    $("#home_pic").show();
},mouseleave(function() {
    $("#home_pic").hide();
}));

注意:代码未测试为正常工作。

您可以使用toggle()函数进行此操作,它接受布尔值来设置状态,如下所示:

$('#home_pic').on('mouseenter mouseleave', function(e) {
    $('#home_tip').toggle(e.type==='mouseenter');
});

如果工具提示在主页图片上运行,您也可以尝试类似的操作-我使用了非常类似的代码在图像地图上弹出气泡

$('#research_area').mouseover(function() {
$('img#research').css('display', 'block');
runthis();
});



function runthis () {
if ( $('img#research').css('display') == 'block')  {
$('img#research').mouseleave(function() {
    $(this).css('display', 'none');
    });
}

$(此)将不会引用正确的div。请注意,悬停div与工具提示div不同。编辑该部分,这就是为什么我确保将未测试的代码放入。因此,它仍然应该是代码中的“主页”提示。此外,在本例中,您将mouseleave函数的结果作为处理程序传递给mouseenter。我想这就是你要找的:$('home_pic').mouseenter(function(){$('home_tip').show();}.mouseleave(function(){$('home_tip').hide()});​我刚才注意到了Ankit!我想,“一般来说,+1注释不是带有+1向上投票吗?”同样值得注意的是.hover只调用mouseenter和mouseleave。我知道hover调用mouseenter并离开,但它减少了代码大小。我喜欢这种方法+1(真的)
$('#research_area').mouseover(function() {
$('img#research').css('display', 'block');
runthis();
});



function runthis () {
if ( $('img#research').css('display') == 'block')  {
$('img#research').mouseleave(function() {
    $(this).css('display', 'none');
    });
}