當用戶導航到不同的區域時(通過更新div),我們正在動態更新部分網頁。我們有一節包含一個jQuery對話框以及創建對話框的腳本。當我們第一次構建頁面時,一切都很好。然後我們用包含一個新對話框的新內容更新div,但是當我們顯示這個對話框時,我們會得到之前存在的舊對話框。我已經嘗試在加載新內容之前銷燬對話框,在這種情況下,新對話框將不會顯示。該對話框隨着按鈕單擊事件打開。看來加載一個jQuery對話框的div不起作用。這有什麼限制嗎?我正在用jquery div.html(內容)加載新內容。新內容正在加載,因爲我可以看到其他更改。jquery使用包含腳本的HTML更新div
回答
聽起來好像你需要重新註釋評論中的cilck事件。重新綁定$.ajax()
調用中的成功選項中的元素。
$.ajax({
beforeSend: function() {
// Unbind all dialogs first.
$(".dialog").each(function() {
$(this).dialog("destroy");
});
},
url: "/Foo/GetSomeData",
type: "GET",
success: function (data) {
$("div").html(data);
// Get all buttons and bind click to open dialog
// You'll need to customize this logic depending on your markup.
$(".button").each(function() {
$(this).click(function() {
// Determine which dialogs need to be bound.
$("#dialog_1").dialog("open");
// etc
});
});
}
});
有沒有辦法找到所有的對話框不知道每個人的ID? div更新後,我不知道ID。我們的很多代碼都是動態生成的,因此ID不斷變化。 – rjhdakota 2012-02-09 04:10:24
沒有一些對話框標記的例子,很難想出一個獲取對話框的方法。如果你可以添加一些標記到你的問題,這將是有益的。但最終,您需要提供一個系統,在服務器端生成的標記允許客戶端代碼查找對話框元素。例如,這可能是一個編號系統。 – Soliah 2012-02-09 04:18:37
感謝您的反饋,但重新綁定似乎不起作用。我們做的工作是當我們用新內容更新div時,我們更改了對話框的ID。新的按鈕綁定到對話框,一切正常。但是,這可能會導致內存泄漏,因爲舊對話框仍在內存中。我將不得不找出一種方法來銷燬舊的對話框(類似於上面的代碼),但只能在我們正在更新的div中的代碼段進行。 – rjhdakota 2012-02-09 16:06:00
- 1. 包含腳本的jQuery加載()div
- 2. 使用jQuery附件更新div div/html
- 3. 使用jquery更改div中文本的顏色包含
- 4. 更新HTML文本的內部DIV使用jQuery
- 5. 如何重新運行/刷新包含php腳本的div
- 6. 居中包含腳本的div
- 7. 更新的DIV使用jQuery
- 8. 注入HTML包含腳本的地方
- 9. 使用包含腳本的長塊動態更改div的源/內容
- 10. jQuery:包含html
- 11. Html包含jQuery
- 12. 每分鐘重新載入包含PHP腳本的div
- 13. 如何使用熱毛巾包含文本/ html腳本
- 14. 包含Div的HTML列
- 15. 使用Ajax/jQuery更新div
- 16. div不更新使用jquery
- 17. 爲jquery模板附加包含html的腳本
- 18. 無法使用jquery刷新包含php代碼的特定div
- 19. 在包含文本和HTML元素的div中,如何使用JQuery僅更改文本而不是元素?
- 20. 更改包含jQuery對話框的html
- 21. SyntaxError使用jQuery.html插入包含腳本元素的HTML片段
- 22. 使用雙引號腳本編寫包含HTML標記的.write腳本
- 23. 使用包含所有腳本的jQuery的動態內容
- 24. 包含不帶HTML腳本標記的外部JS腳本
- 25. 使用jQuery插入包含函數的腳本?
- 26. 如何在JQuery HTML上包含腳本標記
- 27. 使用客戶端腳本語言包含外部html文件
- 28. jQuery的AJAX的bash的telnet更新DIV腳本不斷
- 29. 使用舊jQuery與新的jQuery腳本
- 30. 在.js中包含jquery腳本頁面
我們可以看到代碼嗎? – ShankarSangoli 2012-02-09 02:29:55
更新內容並銷燬對話框後,您是否在新元素上重新初始化對話框(無論您將它連接到哪個元素?)。例如。 。'$( 「#對話」)對話框( '毀滅'); $( 「格」)HTML(內容); $(「#button」)。click(function(){$(「#dialog」)。dialog(「open」);});' – Soliah 2012-02-09 02:30:46
你是怎麼稱呼你的動態加載對話框的,你能給出一些代碼嗎? – 2012-02-09 02:30:59