我正在尝试在淡化元素上设置超时,以便它在再次淡入/淡出之前有一点缓冲。出于某种原因,我的setTimeout函数似乎不起作用。我以前遇到过这个麻烦,我真的很想知道原因。
这就是我目前使用的:
var button_timer;
if (fade_in_but_hover != "none" && fade_out_but_hover != "none") {
$(".first-level-items > .li").hover(function() {
clearTimeout(button_timer);
$(this).find("a").first().animate({ color: font_color_hover }, fade_in_but_hover);
}).mouseleave(function() {
button_timer = setTimeout(function() {
$(this).find("a").first().animate({ color: font_color }, fade_out_but_hover);
}, 1000);
});
}
答案 0 :(得分:4)
您需要定位this
}).mouseleave(function () {
var $this = $(this);//here
setTimeout(function () {
//use $this here
$this.find("a").first().animate({
color: font_color
}, fade_out_but_hover);
}, 1000);
});