【问题标题】:How to stop an user from clicking on a link again when the ajax call is unfinished?ajax调用未完成时如何阻止用户再次点击链接?
【发布时间】:2018-01-17 14:52:01
【问题描述】:

我有一个链接,点击时我已经完成了一些 javascript 代码和 ajax,但问题是当用户多次点击而不完成之前的过程时,它将执行所有点击,我想停止点击直到上一次进程完成,

【问题讨论】:

  • 您可以为此使用验证
  • 什么样的验证??
  • SO 不是你想要的,我们为你做。这是关于你的尝试和失败,我们试图指出你的错误。
  • @marekful 伙计,如果你不知道,没关系,你不需要回答每个问题。我有解决办法
  • 这个问题是合理的,并适当地解释了问题。如果可能的解决方案未知,开发人员如何为其编写代码? @marekful 的评论不受欢迎。

标签: javascript jquery ajax onclick


【解决方案1】:

当异步任务完成时,您可以使用.one() 并在.then() 重新附加事件

function request() {  
  return $.ajax()
}

function handleClick(e) {
  request.then(function() {
    $(e.target).one("click", handleClick)
  }, function(jqxhr, textStatus, errorThrown) {
       console.error(errorThrown)
  })
}

$("p").one("click", handleClick);

【讨论】:

    【解决方案2】:

    你已经尝试了什么?

    我想到的第一件事是创建一个全局变量,它定义了点击过程的状态。默认情况下,它应该是 false。

    在开始点击事件时,将其设置为 true。在您的点击事件结束时,再次将其设置为 false。

    然后将整个 on click thingie 放在 if 语句中,这样它只会在您定义的 bool 为 false 时执行...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 1970-01-01
      相关资源
      最近更新 更多