我有jQuery和/或jQuery UI的對話框一個非常惱人的問題。jQuery的負載重複成倍
點擊一個特殊的鏈接後一個模式對話框會彈出一些加載內容(AJAX),這加載的內容裏面都是新的鏈接/按鈕,加載同一div盒子裏面的網址,所以仍然被加載的對話框中,但隨着新的內容。問題是,如果您鏈接到該鏈接(在新加載的對話框和最近重新加載的網站中),它的工作原理應該如此,但第二次單擊它會加載兩次URL,第三次加載4次。它會隨着對話框中加載的每個新鏈接呈指數級增長。我使用存儲在$ _SESSION中的計數器對此進行了測試。
這是JavaScript代碼:
var somedialog = $('<div></div>').dialog({
autoOpen: false,
resizable: false,
modal: true,
/*show: 'fade',
hide: 'puff',*/
closeOnEscape: true,
close: function(){
}
});
function openInDialog(url, title, width, height)
{
somedialog.empty();
somedialog.dialog("option", "width", width);
somedialog.dialog("option", "height", height);
somedialog.dialog("option", "title", title);
somedialog.load(url,{},function (responseText, textStatus, XMLHttpRequest)
{
somedialog.dialog('open');
}
);
//somedialog.load(url,{},function (responseText, textStatus, XMLHttpRequest){
// dialogdiv.somedialog('open');
//});
}
$('a.ajaxBuyItemDialog').on('click',function(){
openInDialog(this.href, this.title, 400, 300);
//prevent the browser to follow the link
return false;
});
好像有蜜蜂其他人有這個問題,但是,這不是一個很有效的討論:https://stackoverflow.com/questions/6471360/jquery-load-after-load-repeated-results-problem
感謝您的幫助!
編輯: 這是位於加載腳本代碼的一部分:
$("#_BUYITEM_FORM").live('submit', function(){
$.ajax({ // create an AJAX call...
data: $(this).serialize(), // get the form data
type: $(this).attr('method'), // GET or POST
url: $(this).attr('action'), // the file to call
success: function(response){ // on success..
$("#_BUYITEM_CONTENT").html('<p class="AjaxLoaderImg"><span>Einen Moment bitte...</span></p>');
$("#_BUYITEM_CONTENT").html(response); // update the DIV
}
});
return false; // cancel original event to prevent form submitting
});
沒有它,我不能讓它刷新新內容的對話框。
是這個代碼的網址要裝入不止一次? – charlietfl 2012-03-09 02:33:26
編輯的主要問題 – Maddis 2012-03-13 16:31:09