【问题标题】:How do I slow down the execution of a jquery click function?如何减慢 jquery click 函数的执行速度?
【发布时间】:2015-12-25 22:56:49
【问题描述】:

我在 Google Chrome 控制台中使用一个简单的 jquery 命令来管理我的网站。基本上,我每天都要批准一些新的请求,所以我使用:

$('.approve').click();

其中 'approve' 是需要被点击的按钮的类名。这节省了我几个小时。但是,这每次都会使我的浏览器崩溃,有时甚至不起作用,主要是因为它对我的笔记本电脑造成了资源负担。我正在寻找一种方法来减慢函数的动作。我试过了……

$('.approve').click().delay(1000);

尝试在两次单击按钮之间将其减慢 1 秒。这似乎不起作用(它运行时没有错误,但我认为它不会减慢点击速度。

有什么想法吗?

编辑:

有人指出这可能是另一个问题的重复。它不是的原因是另一个最佳答案侧重于使用 JS 定义一个使用 setTimeout() 的函数,我正在寻找一个本地 jquery 方法来执行它。我知道 jquery 是用 JS 编写的,但是因为我在命令控制台中使用它,所以我没有多行编码空间的奢侈。

谁能告诉我为什么上述功能不起作用?根据我的研究,似乎应该这样做。

提前谢谢你。

【问题讨论】:

  • 更好的方法是弄清楚为什么基本的点击处理程序会给您的笔记本电脑带来如此大的压力...
  • 使用 setTimeout() 函数。
  • @RoryMcCrossan 可能是批准按钮向服务器发出请求。假设 OP 有数千个按钮,这将产生相同数量的请求。
  • 希望我们能看到更多你的代码!另一种可能性是,由于某些开发人员在注册事件处理程序时犯的常见错误,每次连续单击触发的次数都比前一次要多。如果这与对服务器的请求相结合,那么您就可以了!

标签: javascript jquery google-chrome console delay


【解决方案1】:

每次点击之间等待 1 秒:

您需要遍历每个.approve-按钮,然后触发每个按钮的点击事件,中间间隔一秒:(setTimeout)

$('.approve').each(function(index) {
    var $approve = $(this);
    setTimeout(function() {
        // Simulation click event
        $approve.trigger('click'); 
    // 0, 1, 2, 3, ... times 1000 to bring delay to miliseconds
    }, index * 1000); 
});

一个衬垫(适用于 IE9+):

$(".approve").each(function(c){setTimeout(function(c){c.click()},1e3*c,$(this))});

一个班轮:

$(".approve").each(function(e){var i=$(this);setTimeout(function(){i.click()},1e3*e)});

【讨论】:

    【解决方案2】:

    您可以像这样在功能点击上添加延迟

    $(".approve").click(function(){
        setTimeout(function(){
            // Do something
        }, 1000);
    });
    

    【讨论】:

      【解决方案3】:

      如果你想执行你的函数一次,使用setTimeout()

      $(".approve").click(function(){
          setTimeout(function(){
          }, 1000);
      });
      

      如果要每秒执行一次,请使用setInterval()

      【讨论】:

        【解决方案4】:

        点击时你必须运行一个函数来执行 setTimeout 函数

        $('.approve').click(function(){
          setTimeout(function(){
          // here some code u want to execute after 5 sec //
          }, 5000);
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-09
          • 2015-03-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-02-14
          相关资源
          最近更新 更多