我使用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']
]
});
但它并不喜欢它,只有在我使用不同的十六进制传递完整的原始回叫时才会更新。
有人可以提出建议吗?
答案 0 :(得分:0)
Documentation for jQuery Spectrum says说:
$("#picker").spectrum("option", optionName, newOptionValue);
是更新的语法。所以你可以试试下面的内容。
$('.fgcolorpicker').spectrum("option", "palette", [
['#3C3F3D', '#98B82A', '#D8A51A'],
['#81904D', '#ffffff', '#98B82A']
]);