JS, how to stop process execution if it's beeing execute

JS, how to stop process execution if it's beeing executed ...?

本文关键字:execute beeing it if how to stop execution process JS      更新时间:2023-09-26

如果单击了allready按钮,我如何停止向服务器发送数据?我不想要disable="disabled"响应(按钮是自定义的)。

我尝试设置一个全局var button_clicked = FALSE;,当点击按钮时将其设置为true,然后当收到响应时将其再次设置为false。但这也不起作用,因为我的鼠标一团糟,垃圾邮件点击速度非常快(尽管我只点击了一次->这实际上帮助我发现上面提到的方法并不那么准确)。

是否有更好的方法来停止进程或禁用onClick上的DOM元素?也许禁用该活动?js或jquery答案更佳。或者这真的不能在非常快的请求中完成。我知道这取决于很多因素(比如用户的cpu)。欢迎任何评论或回答。也许每次点击页面都会让用户等待几毫秒?

试试这个小构造函数:

function MyForm()
{
  this.check = false;
  this.form = function(){
    var f = this;
    $('#form').submit(function(e){
      e.preventDefault
      if( f.check === false )
      {
        f.check = true;
        $.ajax({
          ...blah blah
          success: function( data )
          {
            //if you want to let them send again, uncomment this next line
            //f.check = false;
          }
        })
      }
  });
  this.form();
}
$(document).ready(function(){
  var my = new MyForm();
});

如果您注册了一个事件侦听器,那么您获得的event对象将具有一个preventDefault()方法。这样可以避免点击链接或发送提交的表格

如果它是由事件处理程序触发的自定义操作,那么唯一的可能性就是检查处理程序函数中的条件是否真的应该执行该操作。然而,禁用按钮并没有那么糟糕,因为你需要通知用户什么都不会发生。

在单击按钮时删除单击处理程序。当您准备好进行下一次单击时,请再次添加它。

button.onclick = null;