我有一個表,當任何行被點擊時,啓動一個jQueryUI模式對話框,允許用戶編輯該記錄。我用下面的腳本,似乎工作,成功加載使用AJAX相關記錄的詳細信息:jQueryUI模式對話框中的腳本只能工作一次
$("#datatbl tr").bind('click', function() {
var url = 'item_edit.asp?id='+$(this).attr("data-myid");
var dialog = $('<div style="display:hidden" title="Record details:"></div>').appendTo('body');
// load remote content
dialog.load(
url,
{},
function (responseText, textStatus, XMLHttpRequest) {
dialog.dialog({
height: 440,
width: 550,
autoOpen: false,
modal: true,
buttons: {
"Update this record": function() {
$('#editform').submit();
},
Cancel: function() {
$(this).dialog("close");
}
}
});
dialog.dialog('open');
}
);
//prevent the browser to follow the link
return false;
});
它工作正常,我第一次點擊的記錄,但如果我點擊取消,並嘗試編輯再創紀錄,對話框確實出現(具有正確的記錄細節),但是,對話框內沒有任何腳本工作 - 例如:有一個jqueryUI datepicker輸入和一些驗證。
沒有javascript錯誤,並且從我對FireBug的有限理解中,我無法發現任何錯誤,所以我將不勝感激一些建議如何繼續,謝謝!
編輯:啊!有時候,需要在這裏輸入一些信息來發現顯而易見的東西。我剛剛意識到爲對話框創建的DIV在框關閉時不會被破壞。我已經添加了一條線來做到這一點,它現在可以工作。感謝收聽。 :)
以供將來參考,我添加了一個ID在「VAR對話」創建的DIV和取消功能刪除它:
Cancel: function() {
$(this).dialog("close");
$('#dialogbox').remove();
}
我還是很感激,如果有人提出一個更好的處理這種行爲的方式。
你應該添加您的編輯到答案,並接受了答案。 – Chamilyan
我試過了,但需要等8個小時。我會去做,但同時我會編輯原文,謝謝。 – Stevemid