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 事件的主要内容,如果未能解决你的问题,请参考以下文章