- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在尝试暂停倒计时器时遇到问题。我试图做到这一点,以便在单击播放按钮后,该按钮变为暂停按钮。但由于某种原因它不会暂停。
我尝试将 id“pButton”更改为“pauseButton”,这是有效的,但似乎我的暂停 onclick 函数不会改回 pButton,有什么帮助吗?(clearinterval(timecounter), timecounter 是全局的变量,以便它可以访问它。)如果您需要查看,这里还有代码笔上的完整代码: http://codepen.io/freefora11/pen/eJdVjZ
//when play button is pressed
if(document.getElementById("pButton")){
document.getElementById("pButton").onclick=function(){
//change the id of the button
if(document.getElementById("pButton")){
document.getElementById("pButton").id = "pauseButton";
}
//variables
strMin = document.getElementById("test").innerHTML;
var res = strMin.split(":",2);
min = parseInt(res[0]);
min= min * 60;
var sec = parseInt(res[1]);
timeInSeconds = min + sec;
//set interval to start keeping track each second that has passed
timeCounter = setInterval(function() {
timeInSeconds--;
// If we hit 0 seconds clear the timer
if (timeInSeconds <= 0) {
clearInterval(timeCounter);
}
// Display the current time
displayTime();
}, 1000);
}
}
//when the pause button is clicked
if(document.getElementById("pauseButton")){
document.getElementById("pauseButton").onclick=function(){
//stop the interval
clearInterval(timeCounter);
//change the id of the play button from pauseButton to pButton again
if(document.getElementById("pauseButton")){
document.getElementById("pauseButton").id ="pButton";
}
}
}
最佳答案
更改 Id 仍会在 DOM 中留下处理程序的残余部分。因此,当您运行 codepen 并单击“开始/暂停”按钮时,您会注意到它为计时器添加了另一个倒计时。这就是每次单击按钮时倒计时都会加快的原因。
您应该在按钮的一个处理程序中处理单击事件的状态。如果状态已暂停,则处理您的暂停逻辑。如果它正在运行,则处理您的运行逻辑。但这一切都可以通过一个事件处理程序完成。在这种情况下,使用 id 或 class 就可以了,但不要即时交换。如果有的话,使用 Id 作为点击处理程序,然后在 dom 中的元素上交换类(或应用数据属性)将更好地表达时钟的当前状态/模式。
尽管如此,还是要处理 JavaScript 中的逻辑。如果您选择这样做(例如在 CSS 中选择),请使用 dom 状态来应用样式。
关于javascript - 倒计时器 : pause button won't pause or change back into play button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34467764/
关闭。这个问题是off-topic .它目前不接受答案。 想要改进这个问题? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我正在在线开发哈佛 CS50 的 PSET3,并且在 CS50 十五场游戏的“获胜”功能方面遇到问题。 该函数适用于 4x4 网格拼图,但不适用于 3x3 对于 3x3 的情况,该函数返回 true
我在 pset 的最后一部分,每当我使用 ./fifteen 3 #include #include #include // b
我正在学习 Javascript 并开始了第一个游戏元素:井字游戏。 我的元素及其代码: Tic Tac Toe Project 如果用户在井字游戏中获胜,我希望能够显示通知。 现在我只想测试我的“获
我刚刚将 MAMP 3 升级到 MAMP 4,而 MySQL 不再启动。 错误日志文件一遍又一遍地写着: 160905 11:22:17 mysqld_safe mysqld restarted 20
我目前正在构建一款非常流行的 Tic-Tac-Toe 游戏的复制品,该游戏使用纯 ruby 构建并经过测试的 TDD 风格。 我遇到的唯一问题是,在我的一生中,我无法弄清楚如何检查玩家何时获胜。我知道
我想构建 OSX 小部件以快速制作基于流数据的可视化仪表板组件的原型(prototype)。我想使用 d3.js 来进行显示,但是我尝试的最基本的事情都遇到了错误,我没有能力/耐心去解析。 在我开始在
我正在尝试在 android 中制作谷歌地图应用程序。我在 SDK 管理器中安装了 Google Play 服务。当我运行该应用程序时,模拟器中出现错误文本: App won't run unless
我的模拟器有问题,它不想启动,它阻止了加载屏幕。 最佳答案 我也遇到了这个问题,解决方法是打开模拟器,然后在顶部菜单中:Simulator > Reset content and setting。 关
我知道我需要一个 target="_blank,但它在我放置它的任何地方都不起作用。请帮忙! 最佳答案 你可以试试这个... 关于javascript - 添加目标 ="_blank to my
我正在用 PHP 使用 mySQL 编写一个模拟选举的网络应用程序。 我有三个表:Candidates、Elections 和 Votes。 Votes 包含 CandidateID、Election
在David Beazley's talk on generators ,他说,作为一个警告: Functions that consume an entire iterable won't term
我正在通过 Android Studio 使用 Android 模拟器来实现一个使用 Google map 的应用程序,但是当我运行该应用程序时,我在模拟器屏幕上收到以下消息: “如果您的设备不支持
我正在 Salesforce 中创建 DocuSign 自定义按钮。在运行 DocuSign 按钮逻辑之前尝试在某些字段值不满足时添加错误。 我想要的条件是,如果机会阶段的选择列表值不等于“已关闭”,
我正在尝试使用 BaseGameUtils 将游戏集成到我的应用程序中。一切看起来都很好,但是当我运行该应用程序时,我收到消息“在您更新 Google Play 服务之前,此应用程序不会运行”,当我单
我正在开发的网站上使用 jplayer html5 媒体播放器,但它无法在 Chrome 上播放某些 mp3。我试过在浏览器的 native 播放器中播放这些 mp3,但两者都无法播放。另一方面,当我
在 Programming Rust 一书中的 References Are Never 部分,他们指出没有与 C 的 NULL 类似的东西。那一点我明白了。然后他们说 Rust won't conv
Auto-Scaling 下的 EC2 可能由于内存问题而无法扩展。我的自动缩放设置会检查 CPU,因为默认情况下无法将内存添加到 cloudwatch 指标中。有什么建议可以让我的服务器在上述情况下
每当我启动 Azure Cloud Shell 时,都会收到此错误: 无法装载 azure 文件共享。您的云驱动器将不可用您的 Cloud Shell session 将是短暂的,因此任何文件或系统更
我在 UITableViewCell 中有一个灵活的可编辑 UITextView。一个简单项目的完整源代码可以在 https://github.com/AlexChekanov/TextViewInT
我是一名优秀的程序员,十分优秀!