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

Posted

技术标签:

【中文标题】jquery:即使在我使用单击事件隐藏 div 之后也会触发 mouseout 事件【英文标题】:jquery: mouseout event firing even after I used a click event to hide the div 【发布时间】:2011-06-11 14:43:06 【问题描述】:
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()
);

这就是我的代码,问题是当点击事件被触发时一切都很好,na dissapers 但是当你移动鼠标时它会再次出现。我认为问题是触发了 mouseout 事件,但对于我来说,我无法弄清楚如何解决它。有什么想法吗?

【问题讨论】:

我已经为您设置了这个,但我无法复制错误。你想检查一下并告诉我一切是否正常吗? jsfiddle.net/hJgmV 【参考方案1】:

在 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)
    
);

【讨论】:

可见的参数是什么? 编辑了我的答案。试试这样的。【参考方案2】:
jQuery("#na").click(function(e)
   
    e.stopPropagation();
    jQuery("#na").hide()
    jQuery("#back").show()
);

我不确定这是否可行。理论上这应该会停止传播鼠标,但我不确定它是否只会停止传播点击事件!

【讨论】:

以上是关于jquery:即使在我使用单击事件隐藏 div 之后也会触发 mouseout 事件的主要内容,如果未能解决你的问题,请参考以下文章

Jquery Div 隐藏点击

如何点击隐藏和显示一个div

jQuery在拖动时使用右键单击旋转div

单击后jquery mouseleave事件

Jquery使用if for css单击显示隐藏按钮

单击时显示/隐藏Div(.toggle)jQuery