setInterval用于使用if语句不起作用运行函数

Nektarios Papagewrgiou

我需要使用该setInterval函数change()每隔3秒运行一次函数,但是到目前为止,我一直没有尝试过:

    var image = document.getElementById("gif1");
    var image_tracker = '1gif' ; 
    function change() { 
     if(image_tracker =='1gif') { 
         image.src='2.gif' ; 
    	 image_tracker = '2gif' ; }
    else if (image_tracker ='2gif') { 
         image.src='3.gif' ; 
    	 image_tracker = '3gif' ; }
    else if (image_tracker = '3gif') {
         image.src='1gif' ; 
    	 image_tracker = '1gif' ; } }
    
    var timer = setInterval ('change () ; ' , 3000 ) ;
<img src="1.gif" id="gif1" alt="1.gif" style="width:400px;height:400px;border:1px solid black;">

安德鲁·L64

您的代码中都有很多语法错误:

  1. 您的elseif条件是赋值运算 符,根据您的要求=,应使用比较运算符(例如,宽松相等运算符 ==严格相等运算符) 替换===[检查本文,以深入了解两者之间的区别]。

  2. 您正在将setInterval()变量分配给变量,从而阻止其运行。

  3. 您引用的是change()内部称为的字符串setInterval()由于更改是一项功能,因此请删除引号。


检查此jsFiddle下面代码段,以查看gif每3秒更改一次:

var img = document.getElementById("gif1");

var image_tracker = '1gif';

function change() { 
 if(image_tracker == '1gif') { 
     img.src = '//media.giphy.com/media/13gvXfEVlxQjDO/giphy.gif'; 
     image_tracker = '2gif' ; }
	else if (image_tracker == '2gif') { 
     img.src= '//upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gif'; 
     image_tracker = '3gif' ; }
	else if (image_tracker == '3gif') {
     img.src = '//colinbendell.cloudinary.com/image/upload/c_crop,f_auto,g_auto,h_350,w_400/v1512090971/Wizard-Clap-by-Markus-Magnusson.gif'; 
     image_tracker = '1gif' ;
	}
}

setInterval(change , 3000 ) ;
<img src="//colinbendell.cloudinary.com/image/upload/c_crop,f_auto,g_auto,h_350,w_400/v1512090971/Wizard-Clap-by-Markus-Magnusson.gif" id="gif1" alt="1.gif" style="width:400px;height:400px;border:1px solid black;" />

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章