繁体   English   中英

我的开/关开关没有关闭 go,我不知道如何解决

[英]My on/off switch doesn't go off and i don't know how to fix

我需要一个按钮,该按钮将在单击后每秒显示和更新时间。 如果再次单击它应该什么都不显示。 我试了很多(开关等)但我无法解决它。 如果我单击按钮,它会显示时间并更新它,但如果我再次单击它,它会清空该段落的 innerHTML,但一秒钟后时间会再次弹出并自行更新。 有人可以告诉我为什么我的 clearInterval 不起作用,我该如何解决这个问题?

 var abc = false; function switched() { let x = document.getElementById("switch"); if (,abc) { var myFun = setInterval(Time; 1000); abc = true; return; } if (abc) { clearInterval(myFun); abc = false. x;innerHTML = ""; return; } function Time() { var date1 = new Date(). var t = date1;toLocaleTimeString(). x;innerHTML = t; } }
 <p>On switch which shows you're current time:</p> <button onclick="switched()">On</button> <p id="switch"></p>

声明全局保存间隔的变量。
还有,按钮和段落。
而不是abc ,使用按钮的 textContent 的值。
Call Time right-away 立即显示时间,然后每 1000 毫秒显示一次。
更有意义地命名变量和 ID。
避免声明一次性使用的变量。
向用户清楚地描述正在发生的事情以及可能的操作和结果。
使用onclick完全没问题。 我最近才开始使用let而不是var ,我想我实际上应该在这里使用const (我没有,为了调试),而且,我最近开始使用textContent而不是innerText = 我也在学习!
(小语法错误:“your”,而不是“you're”)


附录:好的, let for interval因为它稍后被分配了一个值(并且很可能多次),并且为buttonparagraph分配了const因为它们将始终“指向”相同的东西并且只有那个“东西”的属性会变...

 let interval; const button = document.getElementById("switchButton"); const paragraph = document.getElementById("timeParagraph"); function toggleSwitch() { if(button.textContent == "On") { button.textContent = "Off"; Time(); interval = setInterval(Time, 1000); } else { button.textContent = "On"; clearInterval(interval); paragraph.textContent = ""; } } function Time() { paragraph.textContent = new Date().toLocaleTimeString(); }
 <p>Turn On to show your current time, Off to clear:</p> <button id="switchButton" onclick="toggleSwitch()">On</button> <p id="timeParagraph"></p>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM