JQuery 事件侦听触发了两次

JQuery event listening fired twice

我正在做一个也使用 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');
});

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

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

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

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

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

并且你可以直接向元素注册事件,像这样:

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

或者,像这样:

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

可能是您使用了同一个 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>

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

但是我发现了问题。我有多傻??我的 html 布局文件中有两次 link 到我的 .js 文件。对我来说太棒了!!

再次感谢大家花时间帮助我!!

最好!!