所有函数均未在恢复按钮中运行

All functions are not running in resume button

本文关键字:恢复 按钮 运行 函数      更新时间:2023-09-26

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

恢复

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

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

演示网址在这里

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

JS 文件

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

当您打开 JS 文件 Gist URL 时,请按照第 99、1282 和 2013 行进行操作。

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

C.find("span").val(C.find("span").textContent());
<</div> div class="answers">

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

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

当你为变量选择名称时,最好选择一个名称 响应变量的内容,而不是简单地为其他人和你"a b c",当你忘记逻辑时会更容易理解。

如果要

存储暂停操作完成的时间,请使用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名称为"time"。

更新:

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
});

工作小提琴