在ajax请求后删除以前的.on()事件

时间:2018-07-17 07:37:12

标签: jquery ajax

ASP.NET-MVC请求(Ajax)之后,我正在加载部分页面(在Ajax.BeginForm中。)

在该页面中,我有一些jQuery .on处理程序,无法将其移至其他位置(因为它呈现了@Model属性;即它必须保留在该部分页面上):

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

    // code
});

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

因为每个ajax调用中的处理程序都是重复的。 是否可以删除以前的.on如果有)?还是要使其唯一

1 个答案:

答案 0 :(得分:1)

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

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

    // code
});