我使用spectrum.js
作为颜色选择器,我非常喜欢它。虽然有两件事我无法弄清楚怎么办。我的配置如下:
$("#myColorThing").spectrum({
preferredFormat: "rgb",
showPaletteOnly: true,
showPalette: true,
hideAfterPaletteSelect: true,
color: "",
showInput: true,
allowEmpty: true,
palette: [
[
"rgb(000,000,128)",
"rgb(000,000,255)",
"rgb(000,128,000)",
"rgb(000,128,128)",
"rgb(000,128,255)"
],
[...],...
]
});
我的问题是:
palette
选项,我有5行5列颜色。渲染的小部件看起来有点像带有“透明”/方格图像的下拉列表,暗示没有选择。精细。如果我激活小部件并选择一种颜色是否有办法进行重建?将小部件设置回无选择状态?palette
中的“颜色”选项,以便选择它可以清除后备输入字段的值?答案 0 :(得分:0)
我找到了问题1的解决方法。我重新编写了我的代码。我创建了input
小部件附加到的基本html spectrum
元素。然后,我添加了button
onClick
操作执行...spectrum("destroy")
的{{1}},然后重新创建了频谱实例。 la:
base html:
<div id='colorDiv' class='form-group'>
<label for='myColorThing'>Event Color</label>
<input type='text' name='myColorThing' id='myColorThing'>
<button id='defaultColor' class='btn btn-sm btn-default'>Default Color</button>
</div>
js例程来执行重置魔术:
$("#defaultColor").on("click", function () {
resetColorPicker();
});
function resetColorPicker() {
$("#myColorThing").spectrum("destroy");
$("#myColorThing").val("");
$("#myColorThing").spectrum({
preferredFormat: "rgb",
showPaletteOnly: true,
showPalette: true,
hideAfterPaletteSelect: true,
color: "",
showInput: true,
allowEmpty: true,
palette: [
[
"rgb(000,000,128)",
"rgb(000,000,255)",
"rgb(000,128,000)",
"rgb(000,128,128)",
"rgb(000,128,255)"
],
[...],...
]
});
}