【问题标题】:JQuery event listening fired twiceJQuery 事件监听触发了两次
【发布时间】:2019-01-16 11:43:04
【问题描述】:

我正在做一个也使用 JQuery 的 .NET Core 2 应用程序。

在我拥有的一个 html 按钮中,我正在执行一个 JQuery 函数来获取点击事件。由于某种原因,此功能会触发两次。谁能帮我理解为什么?

提前致谢!!

HTML 代码:

<div class="menu">
        <button class="btn btn-default" id="seeds">Seeds</button>
</div>

JQuery(在 .js 文件中):

$("body").on("click", "#seeds", function () {
    alert('click fired');
});

【问题讨论】:

  • 可能你的脚本被包含了两次
  • 检查jsfiddle.net/Lh8f34w9,你的代码就可以了
  • @ducmai,就是这样。谢谢

标签: javascript jquery .net asp.net-core-2.0


【解决方案1】:

请记住,您可以在 jQuery 中为同一事件注册多个事件处理程序。因此,如果您的处理程序注册了两次,您的处理程序将在单击事件上运行。你可以使用 off 方法移除一个监听器

$("body").off("click");

但我建议直接在您的元素上注册处理程序:

$("#seeds").on("click", function(){
    alert('click fired');
});

【讨论】:

    【解决方案2】:

    我尝试使用您发布的相同代码重现您的问题,但没有发生。 也许,您要注册此活动两次。

    而且你可以直接将事件注册到元素上,像这样:

    $("#seeds").on("click", function(){
        alert('click fired');
    });
    

    或者,像这样:

    $("#seeds").click(function(){
        alert('click fired');
    });
    

    【讨论】:

      【解决方案3】:

      可能是您使用了两次相同的 id。因此,请验证该 ID。

      你也可以使用下面的代码,

      $("#seeds").click(function(){
          alert('click event');
      });
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <div class="menu">
              <button class="btn btn-default" id="seeds">Seeds</button>
      </div>

      【讨论】:

      • 我实际上没有两次使用相同的 ID,我已经检查过了。谢谢。在 id ( $("#seeds").click(function() ) 上调用函数也没有解决它。:(
      【解决方案4】:

      感谢大家的投入和帮助。 正如大家所建议的,我现在直接在元素上触发该功能。

      但是我发现了问题。我有多傻??我的 html 布局文件中有两次指向我的 .js 文件的链接。呵呵!

      再次感谢大家抽出宝贵时间帮助我!

      最好的!!

      【讨论】:

        猜你喜欢
        • 2015-11-22
        • 2017-01-08
        • 1970-01-01
        • 1970-01-01
        • 2015-10-11
        • 1970-01-01
        • 2017-12-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多