首页 > 解决方案 > ajax 请求后删除先前的 .on() 事件

问题描述

我在请求 ( ASP.NET-MVC) 之后加载部分页面 (in )。AjaxAjax.BeginForm

在那个页面中,我有一些 jQuery.on处理程序,我不能在另一个地方移动(因为它呈现一些 @Model 属性;即它必须留在那个部分页面上):

$(document).on("click", "#test", function (e) {
    var myVar = '@Model.MyVar';

    // code
});

问题是:一旦我重新加载该部分,然后单击#test,它就会被调用两次。如果我再次重新加载,它会被调用 3 次,依此类推。

因为处理程序在每个 ajax 调用上都是重复的。有没有办法删除以前的.on如果有的话)?还是让它独一无二

标签: jqueryajax

解决方案


您只需要使用该.off()事件:

$(document).off("click", "#test");
$(document).on("click", "#test", function (e) {
    var myVar = '@Model.MyVar';

    // code
});

推荐阅读