你应该一次点击一次还是一次点击一次

时间:2017-05-25 00:55:43

标签: jquery

我有一个按钮设置来点击页面上的输入,但是当我点击它时,该网站会挂起一段时间。我想知道是否有办法让该功能在移动到下一个之前一次单击一个,点击时可能不会使页面陷入困境?还是更好的方法?

function clearInput() {
     $('input').click();
}

1 个答案:

答案 0 :(得分:2)

对于调试冻结问题,您是否有事件绑定到每个输入?可能是jQuery点击所有这些同时触发太多事件,尝试在输入事件上放置断点或console.log,看看有多少被触发等。

要取消绑定所有事件绑定到输入尝试这个,它还将所有输入设置为null:

setTimeout(function() {
   _this.off();
   _this.click();
   _this.val(null); 
}, interval)

对于您的问题,这是一个解决方案,可以延迟点击每个输入。

在输入上使用jquery each(),每次迭代创建一个增加延迟的setTimeout,例如,我使用500ms,你可以将它改为10ms或其他。

function clearInput() {
  var interval = 500;
  $('input').each(function() {
    var _this = $(this);
    setTimeout(function() {
      _this.click(); //this is the function you need to call
      console.log(_this.val()); //for example only, remove later
      _this.val(null); //for example only, remove later
    }, interval)
    interval += 500;
  });
}
clearInput();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input value="1" />
<input value="2" />
<input value="3" />
<input value="4" />
<input value="5" />