两个javascript条件指示三元运算符不同时工作

时间:2017-02-01 18:42:15

标签: javascript jquery

以下脚本使用三元运算符,根据存储在数组中的数据,使用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)不能一起工作,什么是同时工作的正确语法?感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用对象而不是三元构造。

dialogClass: (values[array[current][5]] || values.default).color,
title:       (values[array[current][5]] || values.default).title,

使用

min-width:100%