0

我有一个与 Wordpress 插件相关的 JS 文件。这是一个带有计时器的测验插件。我已经实现了一个暂停和恢复按钮,它可以暂停计时器并恢复计时器。但是简历存在一些问题。

恢复按钮代码类似于开始测验功能,但不同之处在于恢复功能需要暂停计时器的时间。但是按下恢复按钮后,问题是:

  1. 按下恢复按钮后暂停按钮不起作用。
  2. 按恢复后,时间过去后,结果页面不会像按开始测验按钮后那样显示。
  3. 测验摘要按钮不起作用。

演示网址在这里

有两个类似的js文件。我提供的是易于理解的。

JS文件

演示中的实际 js 文件有变量名很难理解。所以我提供了类似的 JS 文件。

当您打开 js 文件 gists url 时,请按照行号。99、1282 和 2013 年。

4

3 回答 3

0

由于这一行而引发错误:C.find("span").val()=C.find("span").textContent(); 用下面的代码更改它

C.find("span").val(C.find("span").textContent());
于 2013-09-25T04:47:16.163 回答
0

首先,当您单击“计时器恢复”时,控制台问题中出现第 242 行的错误,h[с].home is undefined 原因是当您按下暂停功能时 questionStart 被分配给变量 C“未定义”

使用 chrome 开发者工具或 firebug 来了解哪里出了问题。

而且当你给变量取名字的时候最好选择一个名字来响应变量的内容而不是简单的“ab c”给别人,给你忘记逻辑的时候会更容易理解。

于 2013-09-25T04:43:43.370 回答
0

如果要存储暂停操作完成的时间,请使用 jquery 的data()方法。

在暂停时间

C.find("span").data('time',C.find("span").text());

在恢复时间

//use this value to some variable to resume the time.
var resumeTime = C.find("span").data('time');  

上面的data()方法是为你的元素添加一个键属性,C名称为“时间”。

更新:

var timer = null,
    interval = 1000,
    value = 300; //In seconds, for 5 mins

$("#start").click(function () {
    if (timer !== null) return;
    timer = setInterval(function () {
        value--;
        $("#input").text(Math.floor(value / 60) + ":" + parseInt(value % 60, 10));
    }, interval);
    this.value = "resume";
});

$("#pause").click(function () {
    clearInterval(timer);
    timer = null
});

工作小提琴

于 2013-09-25T05:23:02.300 回答