实现图片点击循环切换功能时仅生效一次的技术求助
解决图片点击循环切换失效的问题
你的代码里有两个关键错误导致点击仅第一次生效:
- 条件判断用了赋值运算符:所有
if (count = 1)里的=是赋值操作,不是比较。这会把count强制设为1,导致每次都执行第一个if分支,后续判断永远不会触发。 - 没有递增count:执行完当前分支后,count没有变化,永远停留在1,无法进入下一个切换状态。
修正后的JavaScript代码
let count = 1; // 用let声明变量更规范 function myFunction(a, b, c) { const imgElement = document.getElementById("johnnycashpicscroll"); if (count === 1) { imgElement.src = b; count = 2; } else if (count === 2) { imgElement.src = c; count = 3; } else if (count === 3) { imgElement.src = a; count = 1; } }
代码说明
- 把
=替换成严格相等运算符===,确保是条件比较而非赋值 - 每个分支执行后手动更新count的值,让下一次点击进入正确的分支
- 用
else if替代多个独立if,避免不必要的条件判断 - 提前获取图片元素,减少重复DOM查询
优化建议(可选)
可以把图片路径存到数组里,让逻辑更简洁,方便后续添加更多图片:
const imageUrls = [ "JohnnyCashPic1.jfif", "JohnnyCashPic2.jfif", "JohnnyCashPic3.jfif" ]; let currentIndex = 0; function myFunction() { currentIndex = (currentIndex + 1) % imageUrls.length; document.getElementById("johnnycashpicscroll").src = imageUrls[currentIndex]; }
对应的HTML点击事件改成:
<img src="JohnnyCashPic1.jfif" alt="" height="155" width="100" id="johnnycashpicscroll" onclick='myFunction()'>
内容的提问来源于stack exchange,提问作者Jack of All Python
相关产品推荐
相关产品推荐

