使用AJAX时遇到了很大的问题:
在我的页面上的AJAX请求发送后,下一个请求被多次发送,并且按钮认为它们被多次按下。
现在我在这里搜索和互联网,但我无法解决它。到目前为止,在代码中进行了以下更正:
现在我尝试使用$(“body”)解析所有事件。找到(“*”)。off(),但这也无济于事。
我知道我做错了什么,我只是不知道是什么。
在Ajax调用完成后,如何才能正确地重新绑定每个方面?如何在第一次ajax调用之后使对象绑定(例如$(“#news”)。sortable({}))正常工作?
我希望在我的页面上使用AJAX进行所有回调,但目前最好的解决方案似乎只是在每次ajax调用后重新加载整个页面,这将是相当糟糕的。
任何帮助表示赞赏。
编辑:代码已添加
$(window).load(function() {
AjaxInit();
});
$(document).ajaxStop(function() {
AjaxInit();
});
function AjaxInit() {
$("body").on("click", "#btn-admin-main", function(e) {
console.log("Admin clicked");
e.handled = true;
e.preventDefault();
LoadDynamicContent("/Edit/");
});
}
function LoadDynamicContent(path) {
//Nach oben Scrollen
$('html,body').scrollTop(0);
$.ajax({
type: 'GET',
url: path,
success: function(response) {
var html_response = $(response).find('#dynamic_content').html();
$("#dynamic_content").html(html_response);
}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<a class="sidebutton-full" id="btn-main">Edit</a>
<div id="dynamic_content"></div>
答案 0 :(得分:1)
您可以从按钮
取消绑定点击事件$(document).unbind('click').on("click", "#btn-main", function () {
//do stuff here
});
OR
$(document).off("click", "#btn-news").on("click", "#btn-news", function () {
});
如果您的表单提交两次,那么您需要稍微更改一下代码
$("#form_news_sort").submit(function(e){
e.preventDefault()
// do stuffer here
.
.
.
.
return false;
})
如果您仍然面临错误,请在下方发表评论