jquery:即使在我使用click事件隐藏div之后,mouseout事件也会触发

时间:2011-01-19 08:25:37

标签: jquery click hide jquery-animate mouseout

jQuery("#na").mouseover(function()
{
    jQuery("#na").animate({width:"325px", height:"203px", left:"-40px", top:"-25px"}, 200)
});

jQuery("#na").mouseout(function()
{
    jQuery("#na").stop()
    jQuery("#na").animate({width:"244px",height:"152px", left:0, top:0}, 200)
});

jQuery("#na").click(function()
{
    jQuery("#na").hide()
    jQuery("#back").show()
});

这就是我的代码,问题是当点击事件被触发时一切都很好,但是当你移动你的鼠标再次重新获得时,它会消失。我认为问题在于mouseout事件正在被触发,但是在我的生活中无法弄清楚如何修复它。任何想法?

2 个答案:

答案 0 :(得分:0)

在mouseout方法中,检查“na”是可见还是隐藏。如果它是隐藏的,不要做任何事情,否则你可以做动画。

编辑:

尝试使用这样的mouseout方法:

jQuery("#na").mouseout(function(){
    if(jQuery("#na").is(":visible")){
       jQuery("#na").stop()
       jQuery("#na").animate({width:"244px",height:"152px", left:0, top:0}, 200)
    }
});

答案 1 :(得分:0)

jQuery("#na").click(function(e)
{   
    e.stopPropagation();
    jQuery("#na").hide()
    jQuery("#back").show()
});

我不确定这是否会起作用。从理论上讲,这应该会阻止mous ent的传播,但我不确定它是否只会阻止点击事件被传播!