【发布时间】:2012-09-11 22:53:39
【问题描述】:
我一直在使用委托来获得在嵌套 div 上工作的悬停效果。但它似乎导致了一个闪烁的循环,我不知道如何停止它。
.shadow div 是其父 div .box 的高度和宽度。
<div class="wrapper">
<div class="box">
<div class="hover"><h2>Joe Bloggs</h2></div>
<div class="cover"></div>
<div class="shadow"></div>
<img class="image" src="_assets/images/joebloggs.jpg" alt="" />
</div>
</div>
$(".wrapper").delegate(".shadow", "mouseover mouseout", function(e) {
if (e.type == 'mouseover') {
$(this).parent().find('.cover').show();
$(this).parent().find('.hover').show();
} else {
$(this).parent().find('.cover').hide();
$(this).parent().find('.hover').hide();
}
});
【问题讨论】:
-
当您显示
cover和hover时,它会变为光标下方,触发鼠标移出,隐藏cover和hover导致鼠标再次悬停在无限循环中。如果您不使用 mouseenter/mouseleave 并将cover和hover设置为 shadow 的子级,则不会出现此问题。 -
@Kevin B 啊当然,我真笨!我现在觉得很傻,谢谢你指出这一点。
-
@Kevin B 由于您的评论已修复,非常感谢!
标签: jquery delegates hover infinite-loop flicker