输入更改触发了ajax调用,成功时我们修改了页面上80%的内容。
2到3个请求响应没问题,然后浏览器挂起,直到成功函数
更新数据。
var options = {
url: form.attr("action"),
data: form.serializeArray(),
type: 'POST',
beforeSend: function ()
{
$("#main_page :input").attr("disabled","disabled");
},
success: updatePage
};
form.ajaxSubmit(options);
,成功函数是
updatePage: function(data)
{
if(data.isEmptyDiv)
{
$('#Messages').html(data.gMessagesHtml);
$('.options').remove();
$('table').remove();
$('.offers').remove();
$('.code').remove();
$('.totals').remove();
$('.summary').append(data.Html);
$('.summary').addClass('empty');
$('.summary').addClass('empty');
}
else
{
$('#Messages').html(data.MessagesHtml);
$('table').replaceWith(data.Items);
$('table').find('.test input[type="number"]').ESO_number_input();
bindAll();
$('.offers').html(data.offers);
$('.code').html(data.code);
$('.totals').html(data.Totals);
if( $('.offers .image').html() != ''){$('div.item_container_holder').hide();}else{$('div.item_container_holder').show();}
}
if (!data.Eligible) {
$('#ButtonTop').removeClass('major');
$('#ButtonBottom').removeClass('major');
$('#ButtonTop').addClass('minor');
$('#ButtonBottom').addClass('minor');
$('#ButtonTop').attr('disabled', 'disabled');
$('#ButtonBottom').attr('disabled', 'disabled');
} else {
$('#ButtonTop').removeClass('minor');
$('#ButtonBottom').removeClass('minor');
$('#ButtonTop').addClass('major');
$('#ButtonBottom').addClass('major');
$('#ButtonTop').removeAttr('disabled');
$('#tButtonBottom').removeAttr('disabled');
}
},
2,3 ajax请求工作正常。之后,浏览器会挂起,因为所有浏览器都会发生这种情况。
答案 0 :(得分:0)
以下是一些想法。
功能是什么
bindAll();
做什么?你是多次绑定同一个事件并导致某种循环吗? 也许你需要首先取消绑定或绑定多次调用它一次?
是
data.Items
in
$('table').replaceWith(data.Items);
真的是一个渲染的html表吗?你在页面上有多个表吗?如果是这样,你应该用ID来引用它。