javascript - setInterval 用于运行 if 语句不起作用的函数
问题描述
我需要在每 3 秒后使用该setInterval
函数运行该函数change()
,但到目前为止我尝试的方法不起作用:
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;">
解决方案
你的代码中有一堆语法错误:
您的
elseif
条件是赋值运算符=
,应根据您的要求替换为比较运算符,例如松散相等运算符==
或严格相等运算符[查看 本文以深入了解两者之间的差异]。===
您正在将您分配
setInterval()
给一个变量,从而阻止它运行。您正在引用一个
change()
在setInterval()
. 删除引号,因为 change 是一个函数。
检查此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;" />
推荐阅读
- dart - 异步方法未写入文件
- python - 将 Python 请求转换为 Apps 脚本请求
- yarn-workspaces - 将 create-react-app 与纱线工作区 monorepo 一起使用时,.env 不起作用
- python - Python中的替换密码代码问题
- javascript - 在 componentDidMount 内映射
- c# - Winforms 用字体编译程序
- python - 倒数第二个值(熊猫,Python)
- c++ - 使用 std::ws 和去同步流时的问题
- snowflake-cloud-data-platform - 如何通过时区作为连接字符串参数来更改用户会话 tz
- python - Python计算列表中元素的数量,但不在正确的位置,没有重复