javascript - 如何设置 setTimeout 和clearTimeout 在同一按钮上运行

标签 javascript jquery onclick

这是我的代码

$('#btnDelete').unbind().click(function(){
    var time = setTimeout(function() {
        $.ajax({
            type: 'ajax',
            method: 'get',
            async: false,
            url: '<?php echo base_url() ?>main/delete',
            data: {id:id},
            dataType: 'json',
            success: function(response){
                if(response.success){
                    showNews();
                } else {
                    alert('Error');
                }
            },
            error: function(){
                alert('Error deleting')
            }
        });
    }, 10000);
});

我可以在哪里放置clearTimeout()函数,以便每次单击同一个按钮时计时器都会重置?谢谢!

最佳答案

试试这个:

  var time;
  $('#btnDelete').unbind().click(function() {
    if (time) {
      clearTimeout(time);
      time = null;
    }
    time = setTimeout(function() {
      $.ajax({
        type: 'ajax',
        method: 'get',
        async: false,
        url: '<?php echo base_url() ?>main/delete',
        data: {
          id: id
        },
        dataType: 'json',
        success: function(response) {
          if (response.success) {
            showNews();
          } else {
            alert('Error');
          }
        },
        error: function() {
          alert('Error deleting')
        }
      });
    }, 10000);
  });

time 设置为全局变量或在点击处理程序外部访问。检查时间值,如果有任何值,则重置它,否则您的正常代码将起作用。

关于javascript - 如何设置 setTimeout 和clearTimeout 在同一按钮上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53634766/

相关文章:

jquery - $(sel).bind ("click"、 $(sel).click(、 $(sel).live ("click"、 $(sel).on ("click"之间有什么显着差异?

SlideToggle 函数上的 Jquery 图像更改

javascript - 如何使用下拉值更改 href 链接

javascript - 我想显示 slider div,直到鼠标悬停在 jquery 中有许多内部 div 的容器 div 上吗?

Javascript - 从链接获取 GET 参数并阻止打开

javascript - 为什么当我选择日期(使用 HTML5 日期)时,Javascript 显示的日期与日期选择器中的日期不同?

javascript - 使用 jQuery 将所有 <audio> 元素静音

javascript - 我如何在 JavaScript 中对这个数组进行排序?

javascript - 无法在 textarea 内容中呈现 HTML 标签

java - 如何获取经过哈希处理的数据的真实值(value)?