jQuery Spectrum - 如何使用更新的调色板阵列重新初始化

时间:2014-12-03 14:26:32

标签: javascript jquery

我使用jQuery频谱和7种不同的颜色选择器。

拾取器都装有相同的6种颜色 - 如果从颜色选择器中选择了一种新的活动颜色,我希望所有的调色板都能用原始颜色+新的活动颜色重新初始化。

Spectrum的功能可以接近这个功能但遗憾的是它仍会显示新选择的颜色,即使它们不活动,我只想要活动或原始调色板。

这是我的一个电话看起来像:

/* FG COLOR */
function fgColor(color) {
    var hexColor = "#ffffff";
    if (color) {
        hexColor = color.toHexString();
    }
    $(".fgcolor").css("color", hexColor);
}

$(".fgcolorpicker").spectrum({
    showInput: true,
    showInitial: true,
    preferredFormat: "hex",
    showSelectionPalette: false,
    showPalette: true,
    palette: [
        ['#3C3F3D', '#98B82A', '#D8A51A'],
        ['#81904D', '#ffffff', '#98B82A']
    ],
    color: "#3C3F3D",
    maxSelectionSize: 1,
    change: fgColor
});

fgColor($(".fgcolorpicker").spectrum("get"));

以上工作正常......但是当我想重新绘制调色板时,我会陷入困境......我认为将调色板传回光谱会像以下一样:

$(".fgcolorpicker").spectrum({
    palette: [
        ['#3C3F3D', '#98B82A', '#D8A51A'],
        ['#81904D', '#ffffff', '#98B82A']
    ]
});

但它并不喜欢它,只有在我使用不同的十六进制传递完整的原始回叫时才会更新。

有人可以提出建议吗?

1 个答案:

答案 0 :(得分:0)

Documentation for jQuery Spectrum says说:

$("#picker").spectrum("option", optionName, newOptionValue);是更新的语法。所以你可以试试下面的内容。

$('.fgcolorpicker').spectrum("option", "palette", [
    ['#3C3F3D', '#98B82A', '#D8A51A'],
    ['#81904D', '#ffffff', '#98B82A']
]);