Zac*_*ack 7 jquery jquery-ui modal-dialog
我最近遇到过一种情况,我在处理JQueryUI模态对话框时应该使用哪种技术.
我有一个函数:ClearDay(weekID,ltDayID).目前,它负责创建一个带有两个按钮的对话框:ok和cancel.
ok将触发ajax调用,将weekID和ltDayID传递给服务器.
取消将清空对话框的div并调用.dialog('destroy')目标div.
我的问题是:我应该使用以下哪种方法?
在每次调用时销毁/重新创建对话框 - 这样我就可以将参数传递给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');
}
});
}
Run Code Online (Sandbox Code Playgroud)
只创建一次对话框,但是在标记中为每个对话框设置一个div,使用Close,并使用Jquery Selectors直接传入值
$(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');
}
Run Code Online (Sandbox Code Playgroud)
干杯,
詹姆士
老实说,我不确定。不过,您可以使用 JavaScript 分析器来测量执行任一方式所需的时间。
以下是 Google Chrome 开发者工具中 javascript 分析器迷你指南的链接http://code.google.com/chrome/devtools/docs/profiles.html
我建议第二个选项会更慢,因为我猜测“数据”中的选择器需要进行评估,因此会变慢。
然而,这将取决于对话将被打开/关闭的次数。正如我猜测的那样,破坏和重新创建会很慢(就在眨眼之间 - 但可能会慢一点)。
第一个似乎是一个更简单的实现,因此如果性能似乎不是问题 - 也许只需选择两者中更简单的一个。
| 归档时间: |
|
| 查看次数: |
26028 次 |
| 最近记录: |