首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查某个按钮是否在一段时间内未被点击(jQuery)

检查某个按钮是否在一段时间内未被点击(jQuery)
EN

Stack Overflow用户
提问于 2012-08-23 05:01:15
回答 5查看 2.1K关注 0票数 1

基本上:

你点击一个按钮,它就会运行函数1。

如果你在1秒内没有再次点击按钮,那么函数2就会运行。

如果您在1秒内单击该按钮,则它将再次运行function 1。

诸如此类……

我不明白在Javascript中做这件事的逻辑。

有什么办法吗?

在进阶时谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-08-23 05:08:20

从我的头顶(我没有测试过,但对我来说这似乎是最符合逻辑的):

代码语言:javascript
复制
var t = null;

$("button").click(function() {
    console.log("this is function 1");
    if (t !== null) { window.clearTimeout(t); }

    t = window.setTimeout(function() {
        console.log("and this is function 2");
    }, 1000);
});
票数 3
EN

Stack Overflow用户

发布于 2012-08-23 05:04:44

您需要使用计时器来记录时间。您可以使用setTimeout在1秒(1000ms)内运行函数2。但是,如果您再次单击按钮,则应停止计时器。您可以使用clearTimeout来做到这一点。

核心代码将是:

代码语言:javascript
复制
var timer;

// in button's click handler:
clearTimeout(timer);
timer = setTimeout(function2, 1000);
票数 5
EN

Stack Overflow用户

发布于 2012-08-23 05:09:48

这应该可以做到:

代码语言:javascript
复制
(function() {
    var timer = null;

    $('#button').on('click', function() {
        function1();                         // always call function1
        clearTimeout(timer);                 // clear the timer
        timer = setTimeout(function2, 1000); // run function2 1s later
    });
})();

请参阅http://jsfiddle.net/alnitak/QZRTA/

外部函数块用于在不创建全局变量的情况下将timer变量保留在局部范围内。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12081359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档