【问题标题】:Javascript solution ignore clicks proceeding the first click?Javascript解决方案忽略点击进行第一次点击?
【发布时间】:2015-07-20 22:22:08
【问题描述】:

我有一个按钮或锚元素,可以将用户重定向到不同的视图。单击按钮后,它会触发数据库写入事件。但是,当用户多次单击按钮等待页面重新加载时,会创建多条记录,这会导致应用程序在保存后续表单时出现问题。

什么是最好的方法,也许是在 javascript 或 jQuery 中忽略第一次点击之后的点击?

更新:

我实际上是这样做的,它确实有效——它不会禁用按钮,而是在点击事件时返回 false。

<script>
  $("#linkresponse").click(function() {
    $(this).click(function() {
      return false;
    });
      return true;
  });
</script>

这似乎是一个很好的解决方案,有什么理由我不应该遵循它?

【问题讨论】:

标签: javascript jquery python html django


【解决方案1】:

当一个元素的事件应该只发生一次时,使用 jQuery 的 one() 方法:

$('#myButton').one('click', function(){
  ...
});

【讨论】:

    【解决方案2】:

    创建一个全局变量(称之为 hasClicked 或其他)设置为“false”。在您的 onclick 方法中,在最顶部有这样的逻辑:

    if (hasClicked)
        return;
    else
        hasClicked = true;
    

    【讨论】:

      【解决方案3】:

      我实际上添加了这个脚本。它不会禁用该按钮,但它会为每次后续单击返回 false。现在可以了!也感谢您的建议。

      <script>
        $("#buttonid").click(function() {
          $(this).click(function() {
            return false;
          });
            return true;
        });
      </script>
      

      【讨论】:

        猜你喜欢
        • 2021-05-03
        • 2012-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-03
        • 1970-01-01
        • 1970-01-01
        • 2016-01-12
        相关资源
        最近更新 更多