答案 0 :(得分:2)
原因是因为mouseout
事件冒泡,也就是说,当您将鼠标移出任何一个孩子时,祖先仍然会收到该事件。您可以通过针对当前目标(this
)检查目标来解决此问题。 Here's an updated jsFiddle.
$("#yw1").mouseout(function(e) {
if(e.target === this) {
$("#yw1 .portlet-content").slideUp('fast');
}
});
答案 1 :(得分:2)
使用jQuery的mouseleave而不是mouseout。
答案 2 :(得分:2)
原因是mouseout事件被冒泡并且隐藏了。使用mouseneter
和mouseleave
事件来解决此问题。
$("#yw1 .portlet-title").mouseenter(function(){
$("#yw1 .portlet-content").slideDown('fast');
});
$("#yw1").mouseleave(function(){
$("#yw1 .portlet-content").slideUp('fast');
});
<强> Demo 强>