以下脚本使用三元运算符根据存储在数组中的数据使用 jQuery 创建不同的对话框:
$div.html(data).dialog({
dialogClass: array[current][5] == 4 ?
"green" :
array[current][5] == 3 ?
"green" :
array[current][5] == 0 ?
"red" :
"orange",
width:"750px",
title: array[current][5] == 4 ?
"Ok" :
array[current][5] == 3 ?
"Ok" :
array[current][5] == 0 ?
"Bad" :
"Average",
position: {my: "center top",
at: "center top",
of: "#doc-frame"},
buttons: {
'Previous': function() {
if (current == 0) {
return;
}
else {
current--;
}
$(this).dialog("close").remove();
createDialog(array[current][0], current);
},
'Next': function() {
if (current == (array.length - 1)) {
return;
}
else {
current++;
}
$(this).dialog("close").remove();
createDialog(array[current][0], current);
}
}
});
由于某些原因,更改标题不起作用。但是当我注释掉 dialogClass 行时它有效(我不更改对话框的样式/格式)。有谁知道为什么这两个条件(dialogClass 和 title)不能一起工作,以及让两者同时工作的正确语法是什么?谢谢。
您可以使用对象而不是三元结构。
var values = {
4: { color: 'green', title: 'Ok' },
3: { color: 'green', title: 'Ok' },
0: { color: 'red', title: 'Bad' },
default: { color: 'orange', title: 'Average' }
};
用法
dialogClass: (values[array[current][5]] || values.default).color,
title: (values[array[current][5]] || values.default).title,