jQuery事件侦听触发两次

时间:2019-01-16 11:43:04

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

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

在我拥有的html按钮中,我正在执行JQuery函数来封装click事件。由于某种原因,此功能会触发两次。有人可以帮助我理解为什么吗?

提前谢谢!

HTML代码:

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

jQuery(在.js文件中):

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

4 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

我尝试使用您发布的相同代码来重现您的问题,但是没有发生。 也许您正在两次注册此事件。

您可以将事件直接注册到元素,如下所示:

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

或者,像这样:

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

答案 2 :(得分:0)

可能是您两次使用相同的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>

答案 3 :(得分:0)

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

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

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

最好!