返回同一页面时,Jquery停止再次绑定事件处理程序
SongPage视图我有以下Jquery代码:返回同一页面时,Jquery停止再次绑定事件处理程序,jquery,asp.net-mvc,Jquery,Asp.net Mvc,SongPage视图我有以下Jquery代码: $(document).on("click", ".foo", function () { changeSong(); }); function changeSong() { $.ajax({ url: path, method: "GET", success: function (data) {
$(document).on("click", ".foo", function () {
changeSong();
});
function changeSong() {
$.ajax({
url: path,
method: "GET",
success: function (data) {
$('#body-wrapper').html(data);
}
});
}
changeSong函数再次返回SongPage视图,因此它会再次绑定另一个click函数,我可以使用。一个函数可以确保每次只执行一次,但是有没有一种方法可以做到这一点,而无需每次创建新的click处理程序?是的,有,您可以在调用.on之前调用.off。但我觉得这不太干净
你就不能不把脚本重新放在页面上吗?例如,像执行非ajax请求一样?测试数据是否被追加,并阻止来自该点击事件的任何ajax调用您是否在SongPage视图中添加了这些代码?代码在我的SongPage视图中是@madalinivascu我没有追加,每次都会替换。为什么要将事件处理程序绑定到文档?如果您在SongPage HTML中包含处理程序代码,那么您知道它的结构,并且可以将处理程序绑定到body包装器。“当它被移除的时候,旧的处理程序就会被摧毁。”帕尔帕蒂姆从来没有想到过,谢谢。我会先试试,看看我能不能做到。如果没有,我就用。关。谢谢