setInterval()变量更改错误

时间:2014-07-21 19:12:56

标签: javascript

问题是当我第一次使用此功能时(间隔时间很好),第二次也是如此,但第三次它不起作用,因为计时器是第二次的计时器,但是变量Timer已经改变了。

希望有人知道如何修复它。

function SetTimer()
{

    clearInterval(AutoMsgTimer);

    Timer = prompt("[AutoMsg] Timer de l'auto-messages en secondes :");

    TimerSec = Timer;
    Timer = Timer*1000;

    var AutoMsgTimer = setInterval(

        function AutoMsg()
        {
            if(AutoMsgStatus == true)
            {
                API.sendChat("/me " + AutoMsgText);
            }
        }

    , Timer);

}

对不起我的英语我是法国人。

1 个答案:

答案 0 :(得分:0)

每次拨打SetTimer()

时,请执行此操作,而不是重新声明变量
var AutoMsgTimer = SetTimer();  //Make sure you call the SetTimer this way, store the return value...

function SetTimer() {
  if (AutoMsgTimer ){
    clearInterval(AutoMsgTimer);
  }
  Timer = prompt("[AutoMsg] Timer de l'auto-messages en secondes :");
  TimerSec = Timer;
  Timer = Timer*1000;
  var interval = setInterval(
    function()   {
      if(AutoMsgStatus == true)
      {
        API.sendChat("/me " + AutoMsgText);
      }
  }, Timer);
 return interval;
}