Spectrum.js将颜色选择器重置为“空白”

时间:2017-07-19 01:21:28

标签: javascript spectrumjs

我使用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)"
        ],
        [...],...
    ]
});

我的问题是:

  1. 我只使用palette选项,我有5行5列颜色。渲染的小部件看起来有点像带有“透明”/方格图像的下拉列表,暗示没有选择。精细。如果我激活小部件并选择一种颜色是否有办法进行重建?将小部件设置回无选择状态?
  2. 与#1有关。是否可以将“透明”/方格图像作为palette中的“颜色”选项,以便选择它可以清除后备输入字段的值?

1 个答案:

答案 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)"
            ],
            [...],...
        ]
    });
}
相关问题