查看您的JsFiddle的最新版本。我更新了jQuery以稍微不同的方式选择元素,所以现在它应该按照您想要的方式运行。
$('#aaa li').hover(function(){
$(this).append('<div id="box"></div>');
$(this).children('div').stop().animate({
bottom:'0px'
},{
queue:false,duration:350
});
}, function() {
$(this).children('div').stop().animate({
bottom:'-53px'
},{
queue:false,duration:300,complete:function() {
$(this).children('div').remove();
}
});
});
当你悬停在简单的li(工作示例)上并且框在鼠标指针下滑动时,你仍然技术上是悬停在li上。
然而,当你悬停在img上(不工作的示例)并且框在鼠标指针下滑动时,你被动地从图像中“悬停出来”。
在第二种情况下,jQuery看到你已经悬停出来了(即使是被动的),并开始悬停出序列。
你有两个选项(我能想到的)来解决这个问题:
img
和div
不是父子关系。 img
不能包含任何内容。 您需要给它们一个共同的父项。 可能是,或者只是像您在第一个示例中使用li
一样。
请参见http://jsfiddle.net/tXJDQ/26/以获取此类示例。
img
上触发的,当鼠标移入div
时就已经离开了img
。 - James Montagne