jQuery在mouseover和mouseout时设置动画

jQuery在mouseover和mouseout时设置动画,jquery,Jquery,我有以下代码,它将鼠标上方的DIV块向下移动了20px: $('.outerDiv').mouseover(function() { $(this).animate({marginTop: "+=20px",},500); }); $('.outerDiv').mouseout(function() { $(this).animate({marginTop: "-=20px",},500); }); div内部包含另一个div。问题在于,当鼠标位于

我有以下代码,它将鼠标上方的
DIV块向下移动了20px:

$('.outerDiv').mouseover(function()
{       
    $(this).animate({marginTop: "+=20px",},500);
});

$('.outerDiv').mouseout(function()
{       
    $(this).animate({marginTop: "-=20px",},500);
});
div内部包含另一个
div
。问题在于,当鼠标位于内部
div
上方时,会发生鼠标移出事件,并且
div
块会上移
20px
。我想知道,如果鼠标仅位于外部
div
之外,是否有办法仅触发mouseout事件

以下是HTML结构:

<div class='outerDiv'>
    <div class='innerDiv'>
       bla bla bla
    </div>
</div>

呜呜呜呜
您需要使用and,而不是mouseover和mouseout,当在子元素上触发时,mouseover和mouseout会冒泡到父元素

这是一篇摘自《圣经》的文章

当指针移动到子元素中时,mouseover也会触发, 而mouseenter仅在指针移动到边界时激发 元素

正如j08691所建议的,您可能只想使用它,因为该方法绑定了mouseenter和mouseleave事件的处理程序

您需要使用and,而不是mouseover和mouseout,当在子元素上触发时,它们会冒泡到父元素

这是一篇摘自《圣经》的文章

当指针移动到子元素中时,mouseover也会触发, 而mouseenter仅在指针移动到边界时激发 元素

正如j08691所建议的,您可能只想使用它,因为该方法绑定了mouseenter和mouseleave事件的处理程序

试试这个:

var baseMargin = 20;

$('.item').hover(function() {
    $(this).stop().animate({marginTop: (baseMargin+20)+'px'}, 500);
},
function() {
    $(this).stop().animate({marginTop: (baseMargin-20)+'px'}, 500);                 
});
示例:

尝试以下方法:

var baseMargin = 20;

$('.item').hover(function() {
    $(this).stop().animate({marginTop: (baseMargin+20)+'px'}, 500);
},
function() {
    $(this).stop().animate({marginTop: (baseMargin-20)+'px'}, 500);                 
});

示例:

发布HTML结构,它将被清除您在
=20px”之后有一个额外的逗号,
发布HTML结构,它将被清除您在
=20px”之后有一个额外的逗号,
您不是指mouseenter和mouseleave吗?我也会用hover()来代替。你是说mouseenter和mouseleave吗?我也会使用hover()来代替。