我有一个指示符元素,当我将其悬停时它应该会消失,并且替换应该出现在同一个地方。
现在当我离开这个替代品时,它现在应该消失了,旧指示器应该再次放置它。
以下是指标或触发器的HTML:
<div class="help-trigger for-desktop">
<div class="bg">
<h4>HELP ME<i class="icon-double-angle-right"></i><i class="icon-double-angle-left"></i></h4>
</div>
</div>
<div class="help-trigger for-mobile">
<div class="bg">
</div>
</div>
这是jQuery代码:
jQuery('.help-trigger.for-mobile').hover(function(){
jQuery(this).stop( true, true ).hide();
jQuery('.help-trigger.for-desktop').stop( true, true).show();
jQuery('.help-trigger.for-desktop').mouseout(function(){
jQuery(this).stop( true, true ).hide();
jQuery('.help-trigger.for-mobile').stop( true, true ).show();
});
});
这一般起作用,但它有点闪烁,而且不稳定。检测到的事件比他们应该检测到的更多(缺少更好的单词)所以即使我没有留下.for-desktop
元素,我也会得到太多变化
答案 0 :(得分:2)
您每次(!)添加.mouseout()
事件处理程序时,将您的移动悬停在.help-trigger.for-mobile
元素上。所以在每个mouseout上你都会调用几个处理程序......这是你的目的吗?
编辑:此外,使用只有一个回调的.hover()将为mouseenter 和 mouseleave添加处理程序,因此在每个mouseenter和mouseleave上为.mouseout添加其他处理程序
答案 1 :(得分:0)
嘿,我认为你试图实现这样的目标:
$('.help-trigger.for-mobile').hover(function() {
$(this).hide();
}, function() {
$(this).show();
});
你将.mouse放在鼠标悬停内,不能那样工作:https://api.jquery.com/hover/