【问题标题】:How to prevent a JQuery click reoccuring without preventing default?如何在不阻止默认值的情况下防止 JQuery 单击再次发生?
【发布时间】:2016-08-02 13:30:42
【问题描述】:

我遇到了一个不常见的问题:我有一个“点击”事件,每次点击运行两次。

<label class='refinement genre-refinement'>
  <input type='checkbox' />
  <div class='refinement-checkbox'></div>
</label>

$(".genre-refinement").click(function() {
  console.log("Once or twice?");
}

这似乎是因为我有一个自定义的 CSS 复选框(删除 CSS 时它只工作一次)。

我尝试过阻止默认设置,但这会阻止自定义复选框检查。像 one("click") 这样的东西是不合适的,因为标签需要可以随心所欲地检查和取消检查。我还尝试将我的复选框移到标签之外,这似乎没有奏效。

我想我可以通过在我的 JQuery 中打上复选标记并放弃自定义复选框来解决问题,但我希望可能有替代方案。

感谢任何提示!

【问题讨论】:

标签: jquery click preventdefault


【解决方案1】:

如何禁用控件。

$(".genre-refinement").click(function() {
  console.log("Once or twice?");
  $(this).prop('disabled', true);
}

但奇怪的是为什么点击被调用了两次。

【讨论】:

    【解决方案2】:

    在复选框上使用更改事件

    $(".genre-refinement :checkbox").change(function() {
          var isChecked = this.checked;
    });
    

    为什么你的点击事件会发生两次仍然是个谜

    【讨论】:

      猜你喜欢
      • 2016-05-27
      • 2018-06-10
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多