setTimeout不工作?

时间:2014-03-04 08:29:50

标签: javascript jquery settimeout

我正在尝试在淡化元素上设置超时,以便它在再次淡入/淡出之前有一点缓冲。出于某种原因,我的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);
        });
    }

1 个答案:

答案 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);
  });