我有一个JavaScript函数,我正在传递一个参数,打开一个jQueryUI对话框。我希望对话框根据参数的值有一个或两个按钮。我该怎么做?
到目前为止,我已经尝试过:
function foo(hasFile) {
$('#dialog').dialog({
buttons: {
Close: function() { $(this).dialog('close'); },
if (hasFile)
"Download": // do something
}
});
}
和
function foo(hasFile) {
$('#dialog').dialog({
buttons:
if (hasFile)
{
"Download": // do something
Close: function() { $(this).dialog('close'); }
}
else
{
Close: function() { $(this).dialog('close'); }
}
});
}
这两个都彻底破坏了我的页面。
答案 0 :(得分:3)
buttons
是一个JavaScript文字对象。你可以这样做:
function foo(hasFile) {
var buttons = {
Close: function() { $(this).dialog('close'); }
};
if (hasFile) {
buttons.Download = function(){
// Do something.
};
}
$('#dialog').dialog({
buttons: buttons
});
}
答案 1 :(得分:1)
这样做的一般方法是:
foo.dialog({
// ...
buttons: (function() {
function CloseHandler() {
// close ...
};
function DownloadHandler() {
// download ...
};
return condition ?
{ "Download": DownloadHandler, "Close": CloseHandler } :
{ "Close": CloseHandler };
})(),
// ...
});
您的想法是创建一个可以做出决策的函数,然后返回您决定的结果。