【问题标题】:multiple countdowns on same page with jquery使用jquery在同一页面上进行多个倒计时
【发布时间】:2012-06-04 14:48:58
【问题描述】:

我对 jquery/javascript 倒计时有一点问题,我希望你能帮助我。

所以,我有计时器功能,它有一个参数,称为选择器(jquery 选择器)..

function timer(selector) {
    self = $(selector);     
    var sec = parseInt(self.find('span.timeout').text());

    var interval = setInterval(function() {
    sec--;
    if (sec >= 0) {
        self.find('span.timeout').text(sec);
    } else {
        setInterval(interval);
    }
    }, 1000);

}

在,html 我有这样的东西。

<div class="element" id="el1"><span class="timeout">10</span></div>
<div class="element" id="el2"><span class="timeout">10</span></div>

具有相同类和不同id的多个元素

而函数的用法是这样的:

$("body").on('click', '.element', function() {
timer(this);
});

在第一次点击时它工作得很好,计时器倒计时。 但是当我单击具有相同类的第二个 div 时,第一个计数器停止,第二个从前一秒开始。

那么,我如何使用 js/jquery 在同一页面上进行多个倒计时,这样我就可以单击这两个元素并且两个计时器都可以正常工作?

演示:http://jsfiddle.net/zKTkj/

【问题讨论】:

  • 在 jsfiddle 上发布一个工作示例,以便我们查看
  • 你真的应该花一些精力在你的格式上,阅读你的问题真的很难而且不能接受。

标签: javascript jquery countdown


【解决方案1】:
  • 您忘记用var 声明self。结果,self 变成了一个全局变量。创建第二个计时器时,您正在覆盖此全局(“共享”)变量。因此,从那时起,两个计时器同时输出到第二个元素,从而导致故障。
  • 你的意思可能是clearInterval(interval)

http://jsfiddle.net/zKTkj/1/

【讨论】:

  • 哦,废话..这就是连续工作和疲倦的原因。非常感谢:)
  • @Lado Lomidze:考虑在脚本文件的顶部添加"use strict";,在设置未声明的变量等情况下会抛出异常。
猜你喜欢
  • 2023-03-18
  • 1970-01-01
  • 2014-05-12
  • 1970-01-01
  • 1970-01-01
  • 2014-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多