javascript - 单击按钮时延长超时功能

标签 javascript jquery

这段代码有效,但我试图在每次单击按钮时将超时函数重置为“0”。

var running = false,
    count = 0,
    run_for = 700;


var end_counter = function() {
    if (running) {
        running = false;
        $("#status").text("Not Running");
        alert(count);
        started_at = 0;
    }
};

$('button').click(function() {
    if (running) {
    count++;


    } else {
        running = true;
        $("#status").text("Running");
        count = 1;
        setTimeout(end_counter, run_for);
    }
});

最佳答案

只需取消并重新启动即可:

var timerId,
    count = 0;
function end_counter() {
    $("#status").text("Not Running");
    alert(count);
    count = 0;
}
$('button').click(function() {
    $("#status").text("Running");
    count++;
    clearTimeout(timerId);
    timerId = setTimeout(end_counter, 700);
});

关于javascript - 单击按钮时延长超时功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24815842/

相关文章:

javascript - Jquery preventDefault 仅用于父链接

javascript - 想要创建一个多语言的javascript对象,如果标签很多,如何处理?

Jquery html5 验证与错误消息

javascript - 如何将异步获取的 CSS 应用到 View 中

javascript - 有没有在 TypeScript 项目中使用 JavaScript 模块的正确方法?

javascript - 如果文本不在 html 标签内,如何在单击时获取文本值?

javascript - 访问 Javascript 中对象数组内的所有属性

javascript - 使用 odata 自定义 orderBy?

javascript - 自动播放的单个播放器中包含更多 Vimeo 视频

javascript - 无法通过 JavaScript 验证我的 "code"