我编写了一些代码来更改标签内每个字母的颜色,并在您悬停链接时显示弹出窗口 .
mouseenter功能正常工作但是当你悬停链接时我想做的是原始更改的反向(所以改回原始颜色) .
我把延迟退出它的工作但是效果并不好 . 我很困惑为什么这对输入而不是休假?
还有一点需要注意的是,当它确实将颜色变回灰色时,mouseenter功能再次不起作用,这有点令人讨厌 .
这是该网站的链接,以便您可以看到我在说什么,链接是底部的“触摸营销”链接
http://dev.touch-akl.com/colin/
有什么帮助吗?
我的jQuery看起来像这样
$('#copyright a').mouseenter(function(){
var $letters = $(this).find('span'),
$sayhi = $(this).find('img'),
delay = 0;
$sayhi.animate({top:-30, 'opacity':1}, 500, "easeInOutExpo");
$letters.each(function(){
$(this).delay(delay).queue(function(){
$(this).css({'color':'#333'});
});
delay+=35;
}); // end each
}).mouseleave(function(){
var $letters = $(this).find('span'),
delay = 0;
$letters.each(function(){
$(this).delay(delay).queue(function(){
$(this).css({'color':'#333'});
});
delay+=35;
});
}); // end leave
2 回答
最有可能的问题是你的函数在mouseenter和mouseleave中创建的闭包 . 它们都引用相同的 delay 变量 . 您可能想要将它们分开:
jQuery
.queue()
使用起来很复杂,所以除非你需要与jQuery动画队列中的其他东西进行交互,否则使用_399508就像这样简单得多 . 您还应该使delay
成为局部变量,因此它不是隐式全局变量 .