Javascript 设置间隔不';不要被解雇
下面是我用来定期运行函数的函数。我使用这个函数来改变身体的背景。但它不会因为某种原因被解雇。请帮我输入这个代码Javascript 设置间隔不';不要被解雇,javascript,jquery,Javascript,Jquery,下面是我用来定期运行函数的函数。我使用这个函数来改变身体的背景。但它不会因为某种原因被解雇。请帮我输入这个代码 setInterval(uiImageChanger(),1); function uiImageChanger(){ var currentTime = new Date().getHours(); var images = ['image1.jpg','image2.jpg']; if( currentTime >
setInterval(uiImageChanger(),1);
function uiImageChanger(){
var currentTime = new Date().getHours();
var images = ['image1.jpg','image2.jpg'];
if( currentTime > 00 && currentTime <= 12){
$('body').css('background-image', "url(" + randomImagePicker(images ,'breakfast') + ")");
}else if( currentTime > 12 && currentTime <= 16){
$('body').css('background-image', "url(" + randomImagePicker(images ,'lunch') + ")");
}else if( currentTime > 16 && currentTime <= 00){
$('body').css('background-image', "url(" + randomImagePicker(images ,'dinner') + ")");
}
}
function randomImagePicker(imgArray,time){
if(time == 'breakfast'){
return "../images/main_image/breakfast/" + imgArray[Math.floor(Math.random() * imgArray.length)];
}else if(time == 'lunch'){
return "../images/main_image/lunch/" + imgArray[Math.floor(Math.random() * imgArray.length)];
}else if(time == 'dinner'){
return "../images/main_image/dinner/" + imgArray[Math.floor(Math.random() * imgArray.length)];
}
}
setInterval(uiImageChanger(),1);
函数uiImageChanger(){
var currentTime=new Date().getHours();
var images=['image1.jpg','image2.jpg'];
如果(currentTime>00&¤tTime 12&¤tTime 16&¤tTime从setInterval函数参数中删除参数。现在,这将调用函数并将函数的返回值设置为对setInterval的引用,这里是未定义的
,因为您不返回任何内容。因此,基本上您是将interval设置为noth因此,在设置setInterval时,除了第一次执行之外,什么也不会发生
改变
setInterval(uiImageChanger(),1); // This will invoke the function immediately.
到
从setInterval函数参数中删除parens。现在,这将调用函数并将函数的返回值设置为对setInterval的引用,这里是未定义的
,因为您不返回任何内容。因此,基本上您是在不设置任何内容的情况下设置interval,因此在设置设置间隔
改变
setInterval(uiImageChanger(),1); // This will invoke the function immediately.
到
您必须传递指向函数的指针,而不是执行该函数
setInterval(uiImageChanger,1);
您必须传递指向函数的指针,而不是执行该函数
setInterval(uiImageChanger,1);
有多种方法可以使用setInterval定义要执行的函数。
其中一种方法是使用函数引用,其示例由#mohkhan给出。
但是,您也可以执行以下操作
setInterval(function(){
// code comes here.
}, time_in_mills);
我还看到您提到函数执行的值为1。这意味着每1毫秒函数将被执行一次,这根本不是一个好的做法。请给出一个以毫秒为单位的实际时间,这样您就有足够的时间让代码执行。有多种方法定义要执行的函数d使用setInterval。
其中一种方法是使用函数引用,其示例由#mohkhan给出。
但是,您也可以执行以下操作
setInterval(function(){
// code comes here.
}, time_in_mills);
此外,我还看到您提到函数执行的值为1。这意味着每1毫秒函数将被执行一次,这根本不是一个好的做法。请给出一个实际的毫秒时间,这样您就有足够的时间让代码执行。关于setInterval()
问题。我想指出代码中的几个其他问题
首先,此测试将始终失败:
else if( currentTime > 16 && currentTime <= 00)
关于setInterval()
问题,您已经得到了一些答案。我想指出代码中的几个其他问题
首先,此测试将始终失败:
else if( currentTime > 16 && currentTime <= 00)
另请参见:)注意,第二个参数中的1是1毫秒,持续1秒,你需要提及1000是的,我算出了!:)谢谢!另请参见:)注意,第二个参数中的1是1毫秒,持续1秒,你需要提及1000是的,我算出了!:)谢谢!