小青_年 2021-04-02 10:22 采纳率: 50%
浏览 57

哪位大佬来帮帮小弟啊?

为什么在if语句不成立的情况下还能执行里面的setTimeout事件呢

<div id="light" class="white_content">
	<a href="javascript:void(0)" onclick="two()" style="z-index:99;left: -5px;">×</a>
	<a href="">
		<img  src="./img/shang.jpg" width="100%" height="100%" alt="" >
	</a>
</div>
<script>
	function one(){
	 document.getElementById('light').style.display='block';
	}
	function two(){
	 document.getElementById('light').style.display='none';
	}
	var a1 = document.getElementById('light');
	a1.style.display='none';
	var i = 0;
	while (i < 100) {
		if(a1.style.display == 'none'){
		  (function(i) {
			setTimeout(function() {
				console.log(a1.style.display);
				one();
				console.log(i)
			}, 3000 * i)
		  })(i++)
		}
	}
</script>
  • 写回答

2条回答 默认 最新

  • hfhan_872914334 2021-04-02 10:33
    关注

    if语句不成立,哪里不成立了,你在上面不是设置了display='none'吗,然后你再在下面用display=='none'判断,肯定会成立啊。

    你这个while也很迷,如果if语句不成立,i不能递增,不是造成死循环了?

    按照你的逻辑,你应该把if放到setTimeout里面,在setTimeout里面去判断display,然后执行下面的逻辑。

    评论

报告相同问题?

悬赏问题

  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价