我想每隔一小时调用一次jquery函数。 所以11:00,12:00,13:00等。
这是功能:
function flipIt() {
$('#flip').addClass('animate pulse');
$('#flip').removeClass('animate pulse').delay(1500);
}
我怎样才能每隔一小时打电话一次?
答案 0 :(得分:5)
你可以这样做:
setInterval(function(){
if(new Date().getMinutes() === 0) {
flipIt()
}
},60000)
// for testing
setInterval(function(){
if(new Date().getSeconds() === 0) {
alert("new minute !");
}
},1000)
function flipIt() {
$('#flip').addClass('animate pulse');
$('#flip').removeClass('animate pulse').delay(1500);
}
答案 1 :(得分:1)
每小时只触发一次的解决方案:
function alertNextHour() {
var nextAlert = new Date();
nextAlert.setHours(nextAlert.getHours() + 1);
nextAlert.setMinutes(0);
nextAlert.setSeconds(0);
nextAlert.setMilliseconds(0);
var timeToNextAlert = nextAlert - new Date();
setTimeout(function() {
// do what you want
alertNextHour();
}, timeToNextAlert);
}
答案 2 :(得分:1)
这是一种取决于动态间隔的方法。以下函数将根据剩余时间到整个小时来设置超时:
function getDelay(){
var date = new Date();
var hour = date.getMinutes();
return (60 - hour) * 60 * 1000; //get the milliseconds until the next full hour
}
delay = getDelay();
var dynamicInterval = function(){
clearInterval(interval); //stop the current interval
delay = getDelay();
interval = setInterval(dynamicInterval, delay); //set the new interval with the new delay
}
var interval = setInterval(dynamicInterval, delay); //initial start of the interval
<强> Demo 强>
注意:该演示处理秒而不是几分钟。
答案 3 :(得分:0)
window.setInterval(function(){
/// call your function
}, 3600000);