0

我有一個問題,我在某個Ajax請求中有5個jQuery對話框。此頁面不會重新加載,完全依賴於ajax。一旦這個特定的Ajax請求加載了5個對話框,它們就會被初始化,並且該插件在對話框的頁面底部添加必要的標記。我通過ajax離開那個頁面去到另一個ajax請求。從模塊生成的html仍然在頁面上。如果我再次回到有這5個對話框的頁面,它會在底部添加另外5個模塊到html,所以現在這樣做成爲10.是否有一種很好的方法來在瀏覽AJAX頁面時移除這些模塊,或者我有跟蹤它?有一些對話框是全局的,每個Ajax請求都使用它,所以全局刪除也不會起作用。單jQuery頁面儀表板上的jquery模式重複

回答

1

我確實有點孤獨的答案給了什麼,但我已經對這些模態的共同類,所以我這樣做。

$(".modal-template").parents('.ui-dialog').remove(); 
1

給每組對話框一個獨特的類 - 也許是「設置」+一個唯一的,遞增的變量。在增加變量之前,請在創建新對話框之前調用,例如$('.set' + incrementVal).dialog("destroy");以消除舊對話框。這聽起來像它會起作用嗎?

例如:

globalIncrement = 0; 
function createDialogs() { 
    globalIncrement += 1; 
    $('div#main').append('<div class="set' + globalIncrement + '">test Dialog</div>'); 
    if(globalIncrement > 1) { 
     $('div.set' + (globalIncrement - 1)).dialog("destroy"); 
     //Also, remove the <div> from the DOM: 
     $('div.set' + (globalIncrement - 1)).remove(); 
    } 
}