我有一些看起来像这样的HTML:
<a href="#" class="move"><span class="text">add</span><span class="icon-arrow"></span></a>
我在锚标记上注册了一个jquery事件:
$('a.move').hover(
function (event) {
$(this).children('span.text').toggle();
$(this).animate({right: '5px'}, 'fast');
},
function (event) {
$(this).children('span.text').toggle();
$(this).animate({right: '0px'}, 'fast');
}
);
当我将鼠标悬停在锚标记上时,它会显示span.text并将锚点5px移动到右侧。
现在,由于我不想进入的并发症,我必须设定位置:相对;在容器上,绝对定位图标和文本,使图标显示在左侧,文本显示在右侧。
问题:
当我将鼠标悬停在锚标记上时,图标向右移动,鼠标最终显示在文本的顶部(显示)。不幸的是,如果我将鼠标从图标移动到文本并且动画开始像疯了一样循环,则会调用'out'函数。我不明白导致“out”事件发生的原因,因为鼠标永远不会离开锚标记。
谢谢!
答案 0 :(得分:13)
您可以使用“mouseenter”和“mouseleave”事件代替悬停,这些事件在子元素妨碍时不会触发:
$('a.move').bind('mouseenter', function (e) {
$(this).children('span.text').toggle();
$(this).animate({right: '5px'}, 'fast');
})
.bind('mouseleave', function (e) {
$(this).children('span.text').toggle();
$(this).animate({right: '0px'}, 'fast');
});