我最近遇到過一種情況,我對使用JQueryUI模態對話框時應該使用哪種技術有些困惑。JQuery模態對話框 - 銷燬還是關閉?
我有一個功能:ClearDay(weekID,ltDayID)。目前這是負責創建一個對話框有兩個按鈕:確定和取消。
ok將觸發ajax調用,將weekID和ltDayID傳遞到服務器。
取消將清空對話框的div並在目標div上調用.dialog('destroy')
。
我的問題是:我應該採用哪種方法?
銷燬/重新創建每次通話對話框 - 這樣我就可以將參數傳遞給Ajax調用只有一個DIV所有對話框的在標記
function ClearDay(weekID, ltDayID) {
$('#modalDialog').dialog({
autoOpen: true,
width: 300,
title: 'Confirm Delete',
modal: true,
buttons: [{
text: 'ok',
click: function (e) {
$(this).dialog('close');
$.ajax({
url: '/Shift/ClearDay',
type: 'POST',
cache: false,
data: { shiftWeekID: weekID, shiftLtDayID: ltDayID },
success: function (result) {
LoadShiftPattern(function (result) {
$('#weekContainer').html(result);
SelectLastUsedField();
});
}
});
}
},
{
text: 'cancel',
click: function (e) {
$('#errorList').empty();
$(this).dialog('close');
}
}],
open: function (e) {
$(this).html("Clicking ok will cause this day to be deleted.");
},
close: function (e) {
$(this).empty();
$(this).dialog('destroy');
}
});
}
創建對話框只有一次,但具有一個DIV用於在標記中的每個對話,使用關閉,並在值通過直接使用jQuery選擇
$(function() {
$('#confirmDeleteDialog').dialog({
autoOpen: false,
width: 300,
title: 'Confirm Delete',
modal: true,
buttons: [{
text: 'ok',
click: function (e) {
$(this).dialog('close');
$.ajax({
url: '/Shift/ClearDay',
type: 'POST',
cache: false,
data: { shiftWeekID: $('#weekIDInput').val(), shiftLtDayID: $('#dayIDInput').val()},
success: function (result) {
LoadShiftPattern(function (result) {
$('#weekContainer').html(result);
SelectLastUsedField();
});
}
});
}
},
{
text: 'cancel',
click: function (e) {
$('#errorList').empty();
$(this).dialog('close');
}
}],
open: function (e) {
$(this).html("Clicking ok will cause this day to be deleted.");
}
});
}
function ClearDay() {
$('#confirmDeleteDialog').dialog('open');
}
個
乾杯,
詹姆斯
第二個也會導致jquery離開對話框的所有html代碼內容,這是在所有監聽器正在建立對話框時添加的。這是第二個解決方案,因爲用了很多對話,速度更慢。 – elon 2013-02-13 15:36:04