我想在窗口加载后只调用一次JavaScript setInterval函数

时间:2015-02-04 12:48:48

标签: javascript jquery

function hidemap(){
    $('#mapToday').hide(); 
    $('#mapWeek').hide();
    clearInterval(myVar);
}
var myVar;
$(window).on('load', function() { 
    myVar = setInterval(hidemap, 2000);
});

我希望这段代码只能调用一次。但是现在它每隔2秒就会调用一次。

3 个答案:

答案 0 :(得分:5)

setInterval整个点是每隔 n秒调用一次

如果您想在一段时间后调用一次函数,请使用setTimeout代替setInterval

答案 1 :(得分:3)

您应该使用setTimeout

function hidemap() {
    $('#mapToday').hide();
    $('#mapWeek').hide();
    clearInterval(myVar);
}

var myVar;

$(window).on('load', function() {
    myVar = setTimeout(hidemap, 2000);
});

此外,由于hidemap不会返回任何内容,因此您应该这样做:

function hidemap() {
    $('#mapToday').hide();
    $('#mapWeek').hide();
    clearInterval(myVar);
}

$(window).on('load', function() {
    setTimeout(hidemap, 2000);
});

答案 2 :(得分:-1)

需要在hidemap函数中使用clearInterval

尝试以下代码

var myVar;
function hidemap(){
    $('#mapToday').hide(); 
     $('#mapWeek').hide();
    clearInterval(myVar);
  }

 $(window).on('load', function() { 
     myVar = setInterval(hidemap, 2000);
  });

或使用setTimeout函数

var myVar;
function hidemap(){
    $('#mapToday').hide(); 
     $('#mapWeek').hide();
    clearTimeout(myVar);
  }

 $(window).on('load', function() { 
     myVar = setTimeout(hidemap, 2000);
  });