2014-12-03 40 views
0

我使用jQuery谱与7种不同的颜色选择器。jQuery Spectrum - 如何使用更新的调色板阵列重新初始化

拾取器都加载相同的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

Documentation for jQuery Spectrum says说:

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

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

非常感谢您 - 我忽略了这一点 - 我对参考“调色板”进行了太多的扫描 - 非常感谢 - jQuery小型学习步骤! – flatcap 2014-12-03 14:58:41

+0

@ user1523591直到你问这个问题,我才知道这件事。很高兴帮助你的方式:) – 2014-12-03 14:59:24