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

I want to call JavaScript setInterval function only once after window load

本文关键字:一次 JavaScript 函数 setInterval 调用 窗口 加载      更新时间:2023-09-26
function hidemap(){
    $('#mapToday').hide(); 
    $('#mapWeek').hide();
    clearInterval(myVar);
}
var myVar;
$(window).on('load', function() { 
    myVar = setInterval(hidemap, 2000);
});

我希望此代码只调用一次。但现在它每 2 秒就会调用一次。

setInterval的全部

意义在于每 n 秒调用一次

如果要在一段时间后调用一次函数,请使用 setTimeout 而不是 setInterval

你应该使用 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);
});

需要在hidemap函数中使用clearInterval

尝试以下代码

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

或使用设置超时函数

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