2012-09-30 114 views
3

我正在尝试使用一些jQuery和HTML。jquery如果不是mouseover语句

我有两个div元素容器包含各种内容。这两个元素彼此相邻。 divs不包含另一个。我写的代码是这样的,当我将鼠标悬停在一个div(div#1)上时,其他div(div#2)滑落(.slideDown)。您还可以将下载的照片从div#2转换为(.slideUp)。

问题是,如果div#2已经滑下,并且如果再次鼠标滑过div#1,则div#2会再次滑落。这非常烦人和不专业。只有当我的鼠标没有超过div#1时,我才需要它向上滑动。

这是我的目标:我需要找到一个jQuery声明说, “只有当鼠标是‘’的div#2不是‘过了’div#1,滑动div#2了。”

这可能吗?

我很感激任何帮助。

谢谢。

回答

3

您需要使用.stop()在对元素重新动画之前停止动画。这将防止队列与重复动画填补:

$('#stop').hover(function() { 
    $(this).stop().animate({width: '250px'}); 
}, function() { 
    $(this).stop().animate({width: '150px'}); 
}); 

演示:http://jsfiddle.net/Blender/2TkNc/2/

0

如果我理解正确你的问题,你应该这样做:

$('.div1').die('mouseover').live('mouseover',function(){ 
            $('.div2').slideDown(); 
            }); 
$('.div2').die('mouseover hover').live('mouseout',function(){ 
            $('.div2').slideUp(); 
            }); 

http://jsfiddle.net/2TkNc/5/