jquery - ajax 请求后删除先前的 .on() 事件
问题描述
我在请求 ( ASP.NET-MVC
) 之后加载部分页面 (in )。Ajax
Ajax.BeginForm
在那个页面中,我有一些 jQuery.on
处理程序,我不能在另一个地方移动(因为它呈现一些 @Model 属性;即它必须留在那个部分页面上):
$(document).on("click", "#test", function (e) {
var myVar = '@Model.MyVar';
// code
});
问题是:一旦我重新加载该部分,然后单击#test
,它就会被调用两次。如果我再次重新加载,它会被调用 3 次,依此类推。
因为处理程序在每个 ajax 调用上都是重复的。有没有办法删除以前的.on
(如果有的话)?还是让它独一无二?
解决方案
您只需要使用该.off()
事件:
$(document).off("click", "#test");
$(document).on("click", "#test", function (e) {
var myVar = '@Model.MyVar';
// code
});
推荐阅读
- arrays - 类数组错误 - “顶级不允许表达式”
- java - xx 服务中的字段 xx 需要一个 bean 类型
- opentok - TokBox 检索用户连接数据
- rust - 实现自定义迭代器的生命周期编译器错误。
- python-3.x - 比较两列之间的顺序模式 - Pandas
- ios - 从 NSObject 继承时在私有函数中初始化变量
- netbeans-platform - 如何在 netbeans 平台 API 中获取当前活动(选定)项目路径
- php - 在事件监听器中同步多对多关系(Laravel 5.7)
- javascript - 如何以这种方式设置/显示这个数组?- CSS/Javascript
- svg - SVG / Inkscape / 遮罩