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

jQuery Spectrum - how to reinitialise with updated palette array

本文关键字:数组 调色板 初始化 更新 Spectrum 何使用 jQuery      更新时间:2023-09-26

我正在使用带有7种不同颜色选择器的jQuery光谱。

拾取器都加载了相同的 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']
    ]
});

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

谁能建议?

jQuery Spectrum 的文档说

$("#picker").spectrum("option", optionName, newOptionValue);是用于更新的语法。因此,您可以尝试以下操作。

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