封闭件损坏 - 请帮我修复它

2024-01-08

in a 相关问题 https://stackoverflow.com/questions/4584397/javascript-countdown-clock/4584501我已经发布了这段代码。它几乎可以工作,但计数器却不能。

我们可以修复它吗? (请不要使用 jQuery)

<script type="text/javascript">
var intervals = [];
var counters = {
  "shoes":{"id":"shoe1","minutes":1,"seconds":5},
  "trousers":{"id":"trouser1","minutes":10,"seconds":0}
}; // generate this on the server and note there is no comma after the last item
window.onload = function() {
  for (var el in counters) { countdown(counters[el]) };
}

function countdown(element) {
    intervals[element.id] = setInterval(function() {
        var el = document.getElementById(element.id);
        var minutes = element.minutes;
        var seconds = element.seconds;
        if(seconds == 0) {
            if(minutes == 0) {
                el.innerHTML = "countdown's over!";                    
                clearInterval(intervals[element.id]);
                return;
            } else {
                minutes--;
                seconds = 60;
            }
        }
        if(minutes > 0) {
            var minute_text = minutes + (minutes > 1 ? ' minutes' : ' minute');
        } else {
            var minute_text = '';
        }
        var second_text = seconds > 1 ? 'seconds' : 'second';
        el.innerHTML = minute_text + ' ' + seconds + ' ' + second_text + ' remaining';
        seconds--;
    }, 1000);
}
</script>
shoes: <span id="shoe1"></span><br />
trousers: <span id="trouser1"></span><br />

你只需要采取minutes and seconds内部函数的变量声明,如下所示:

function countdown(element) {
    var minutes = element.minutes;
    var seconds = element.seconds;

    intervals[element.id] = setInterval(function() {
        var el = document.getElementById(element.id);
        if(seconds == 0) {
            if(minutes == 0) {
                el.innerHTML = "countdown's over!";                    
                clearInterval(intervals[element.id]);
                return;
            } else {
                minutes--;
                seconds = 60;
            }
        }
        if(minutes > 0) {
            var minute_text = minutes + (minutes > 1 ? ' minutes' : ' minute');
        } else {
            var minute_text = '';
        }
        var second_text = seconds > 1 ? 'seconds' : 'second';
        el.innerHTML = minute_text + ' ' + seconds + ' ' + second_text + ' remaining';
        seconds--;
    }, 1000);
}

你打电话时countdown,您希望获取每个倒计时的初始值,然后慢慢减少它们(闭包可确保只要匿名函数需要这些值,这些值就保持可用)。您之前所做的就是在每个刻度开始时重置倒计时值,因此倒计时永远没有机会......好吧,倒计时。

Update:

如果需要更新里面的值window.counters当倒计时处于活动状态时(尽管我不明白您为什么要这样做;如果您想对“当前”倒计时值做任何有意义的事情,只需在匿名函数内执行即可),您可以简单地将其添加到结束:

var second_text = seconds > 1 ? 'seconds' : 'second';
el.innerHTML = minute_text + ' ' + seconds + ' ' + second_text + ' remaining';
seconds--;

// ADD THIS:
element.minutes = minutes;
element.seconds = seconds;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

封闭件损坏 - 请帮我修复它 的相关文章

  • 使用 JavaScript 格式化日期

    JavaScript 中的日期格式有问题 这是我的函数代码 originalDate 2016 03 02 09 12 14 989522 var d new Date originalDate month d getMonth 1 day
  • 在 JavaScript 中检测页面是否加载到 WKWebView 中

    如何使用 javascript 可靠地检测到页面已加载到 WKWebView 中 我希望能够检测到这些场景 iOS 和 WKWebView iOS 和 Safari not iOS 关于 UIWebView 有一个类似的问题here htt
  • 在 onclick 事件上请求麦克风

    有一天 我偶然发现了这个 Javascript 录音机的例子 http webaudiodemos appspot com AudioRecorder index html http webaudiodemos appspot com Au
  • appendChild 错误:无法在层次结构中的指定点插入节点

    There is an error with the function appendChild Node cannot be inserted at the specified point in the hierarchy JS var a
  • HTML 和 标签有什么区别?

    HEAD 标签和 BODY 标签有什么区别 大多数 HTML 书籍仅 简短 提及 and 标签 但它们消失得很快 它们会影响浏览器呈现网页的方式吗 另外 它们会影响 javascript 的运行顺序吗 我的意思是 如果我里面有一个javas
  • React中如何触发同级组件的函数?

    I am new to front end world and could not figure out how to trigger a function from a sibling component Lets say I have
  • jQuery UI Datepicker 奇怪的行为

    我在使用 jqueryUI 使用简单的日期选择器时遇到了一个奇怪的问题 我只想显示两个月的日历 包括上个月和当前月份 我使用了这段代码 function picker datepicker numberOfMonths 2 showCurr
  • Pjax动画

    我终于让 pjax 工作了 但我还有另一个问题 如何添加一些 jquery 动画 如淡出 幻灯片旧内容和淡入 幻灯片新内容 默认情况下 pjax 只是更改内容 没有任何好看的效果 任何帮助将非常感激 此致 基本上 你有一堆事件 https
  • 如何设置必须输入特定数字的字段?

    我想知道如何创建一个需要输入特定数字或文本的字段 例如 激活码 以及在输入的确认答案的情况下移动到 网页 并且在未确认的情况下移动到 另一页面 的按钮 使用必需的属性
  • 修改 Twitter 帖子上可编辑 Div 的内容

    我正在编写一个 chrome 扩展 它可以帮助用户在 Twitter 上输入内容 当在 twitter 上写推文时 twitter 会打开一个可编辑的 div 容器 当用户输入内容时 twitter 大概正在使用某些网络框架 会生成子 di
  • 冒泡可用于图像加载事件吗?

    我可以用吗 window addEventListner 某种程度上来说 我所有的图像都有一个display none 图像加载后 我想设置display inline 这样我就可以规范下载图像时显示的内容 在这种情况下 我无法预加载图像
  • 如何根据另一个下拉列表中的选择动态填充下拉列表中的选项?

    我有一个表 其中包含类别信息 例如产品 我已将它们列在下拉菜单中 现在 我需要做的是 在下一个下拉菜单中列出所选类别的子类别 我希望 javascript 是必需的 但我对 javascript 还不太熟悉 将非常感谢您的帮助 你应该使用
  • 引用自身的 Javascript 对象...有问题吗?

    由于 Javascript 允许通过引用分配复合值 因此如果 Javascript 对象引用自身 它将创建无限的引用集 如控制台中所示 这看起来像是某种无限循环 但 Chrome 似乎没有问题 这样做是否存在任何内存问题或其他风险 就记忆力
  • AngularStrap 工具提示禁用我的自定义指令

    我正在尝试让 bs tooltip AngularStrap 指令与我自己的名为 checkStrength 的自定义指令一起使用 该指令检查密码的强度 单独使用这些指令中的任何一个时 它们都可以正常工作 但不能一起工作 This http
  • Angularjs : $locationProvider.hashPrefix("!") ;

    我想将网址显示为 www test com 因为我正在使用 locationProvider hashPrefix 但它显示网址为 www test com 我想 哈希之前而不是哈希之后 Thanks var app angular mod
  • 选择单选按钮时隐藏/显示 3 个文本框

    我有 2 个单选按钮 选择一个文本框时 我想显示 3 个文本框 并在选择其他文本框时隐藏它 这是代码 这是我的 2 个单选按钮
  • 将两个数字相加将它们连接起来而不是计算总和

    我将两个数字相加 但没有得到正确的值 例如 做1 2返回 12 而不是 3 我在这段代码中做错了什么 function myFunction var y document getElementById txt1 value var z do
  • 如何为 jQuery 插件设置私有变量?

    我想创建一个简单的插件 它使用元素的文本作为默认值 或者您可以在调用插件时设置此值 但是 如果我不设置该值 并为多个元素调用插件 则默认值会成倍增加 function fn reText function options var setti
  • 如何通过点击复制 folium 地图上的标记位置?

    I am able to print the location of a given marker on the map using folium plugins MousePosition class GeoMap def update
  • 为什么 try catch 块没有捕获 Promise 异常?

    我对承诺的错误处理感到困惑 答案可能很明显 但我不明白 我有以下示例代码 var test async function throw new Error Just another error try test then catch err

随机推荐

  • 创建没有笔尖的视图控制器

    在 AppDelegate 中 我想创建一个 UIViewController 子类并添加其视图 视图本身将在代码中指定 没有笔尖 根据苹果文档 我应该使用 initWithNibName nil bundle nil 然后在控制器的 lo
  • 在 Python 中创建快速 RGB 查找表

    我有一个称为 rgb2something 的函数 它将 RGB 数据 1x1x3 转换为单个值 概率 循环输入 RGB 数据中的每个像素结果相当慢 我尝试了以下方法来加快转换速度 生成 LUT 查找表 import numpy as np
  • 获取 pandas 数据框中包含和不包含 NaN 的所有行

    在 pandas 数据框中分割包含 NaN 和不包含 NaN 的行的最有效方法 input ID Gender Dependants Income Education Married 1 Male 2 500 Graduate Yes 2
  • 正则表达式与嵌套括号匹配

    OK 我不知道是否可以编写这个正则表达式 所以我将从寻求帮助开始 到目前为止我还没有成功 源字符串 convert varchar 8000 lt text as reason 所需的匹配 convert varchar 8000 lt t
  • 如何处理 R 回归中残差中的 NA?

    所以我遇到了一些问题NAa 的残差值lmR 中的横截面回归 问题不在于NA价值观本身 这就是 R 呈现它们的方式 例如 test residuals 1 2 4 5 0 2757677 0 5772193 5 3061303 4 51028
  • 为组创建唯一的 id

    我正在解决一个问题 我必须对相关项目进行分组并为其分配唯一的 ID 我已经用 python 编写了代码 但它没有返回预期的输出 我需要帮助来完善我的逻辑 代码如下 data child list for index row in df it
  • 如何将 EF6 与 ASP.NET Core 1 结合使用

    我创建了一个 ASP NET Core 1 项目并使用 Net Core 1 0 框架 并且想要使用实体框架6 我按照这个教程https docs efproject net en latest platforms aspnetcore n
  • Json (fasterxml) stackoverflow 异常

    当尝试序列化类别时 我遇到了 stackoverflow 例外 警告 StandardWrapperValve dispatcher Servlet service for servlet 调度程序抛出异常 java lang StackO
  • onCreate 正在复制视图

    我正在松散地遵循阳光课程 但遇到了问题 In my MainActivity onCreate方法 它最初称为 protected void onCreate Bundle savedInstanceState mStudentId Uti
  • 无法弄清楚为什么 PHP 没有从 $.ajax 调用接收 POST 数据

    我以前并不是没有做过同样的过程 但我不明白为什么我的 PHP 脚本的 POST 数据是空的 这是我所做的 发现的 我已经验证 ajax 调用的 data 参数具有值 submitSearch 函数和 success 参数中的警报显示搜索变量
  • applyBindings() 太快,在 Ajax 请求完成之前调用

    请考虑以下 ViewModel 片段 var id given1 given2 get testSynUfGet aspx null function data id data id given1 data given1 given2 da
  • 在 Windows 中将 python .py 作为服务启动

    我创建了一个 Windows 服务来启动 py 脚本 sc create Maraschino binPath C HTPC Maraschino maraschino cherrypy py DisplayName Maraschino
  • UITextView firstRectForRange 返回错误的框架

    Edit 简单的解决方案是将所有帧计算从viewDidLoad to viewDidAppear 我很难让以下代码正常工作 该代码返回 UITextView 中给定 NSRange 的第一帧 如果没有换行符 它就可以工作 但是当我在 UIT
  • MonoDevelop 中的调试/跟踪输出

    在 MonoDevelop 中哪里可以看到 System Diagnostics Debug 和 System Diagnostics Trace 输出 我认为它应该出现在 ApplicationOutput 窗口中 但无处可寻 应用程序输
  • 关于图像加载 IE 问题的 JavaScript/jQuery 事件侦听器

    我正在寻找一种方法来为尽可能多的浏览器实现此功能 var image new Image image addEventListener load function alert loaded false image src image url
  • C++ math.h abs() 与我的 abs() 相比有什么不同

    我目前正在用 C 编写一些像向量数学类的 glsl 并且我刚刚实现了一个abs 像这样的函数 template
  • 如何使用 Python 模块 Dragonfly 识别语音?

    我一直在试图弄清楚如何使用 Dragonfly 模块 我查看了文档 但似乎不知道如何使用它 我只想能够识别一些短语并根据这些短语采取行动 是的 这个例子将终止 我已经看过这个特定的例子很多了 它缺少一些关键功能 首先是 pythoncom
  • Apache Spark join 操作的扩展能力较差

    我在 Apache Spark 上运行 join 操作 发现没有弱可扩展性 如果有人能解释这一点 我将不胜感激 我创建两个数据帧 a b 和 a c 并通过第一列连接数据帧 我为 一对一 连接生成数据帧值 另外 我使用相同的分区器来避免随机
  • 文本字段在 iOS 模拟器上不显示键盘

    我试图使用基本文本字段在这里构建一个简单的登录屏幕 但我无法让键盘出现在模拟器中 通过物理键盘输入效果很好 但在 iOS 模拟器中没有可见的键盘 我必须明确打开它还是什么 感觉我在这里错过了一些非常基本的东西 buildLoginScree
  • 封闭件损坏 - 请帮我修复它

    in a 相关问题 https stackoverflow com questions 4584397 javascript countdown clock 4584501我已经发布了这段代码 它几乎可以工作 但计数器却不能 我们可以修复它