光谱颜色选择器:在更改事件触发后防止虚假取消

时间:2015-10-08 16:22:15

标签: jquery color-picker

我正在使用Spectrum颜色选择器http://bgrins.github.com/spectrum。我很喜欢它,但有一个问题。

当我按文字输入颜色(在颜色选择器的输入选项中)并按Enter键时,会触发更改事件,但颜色选择器未关闭。这意味着用户仍然可以单击"取消",将颜色选择器恢复为原始颜色。但实际上已经太晚了 - 契约已经完成了!

我需要在按下Enter时关闭颜色选择器,否则不要触发Change事件。

小提琴http://jsfiddle.net/2pub1j9w/

HTML

<input type='text' id="full"/>

JS

$("#full").spectrum({
    clickoutFiresChange: false,
    showInitial: true,
    showInput: true,
    preferredFormat: "hex",
     change: function(color) {
        alert("change");
    }
});

1 个答案:

答案 0 :(得分:1)

你现在可能已经想到了这一点,但你可以使用更改事件进行更改,并使用隐藏事件进行取消,如下所示:

$("#textColor").spectrum({  
    showPalette: true,  
    color: calEvent.textColor,  
    palette: [  
        ['000000', 'FFFFFF', 'FFFF77'],  
        ['008000', 'C0C0C0', 'AE0000']  
    ],  
    change: function(color) {  
        $("#eventPreview").css( "color", color.toHexString() );  
    },  
    hide: function(color) {  
       $("#eventPreview").css( "color", color.toHexString() );  
    }  
});  

仅从取消触发隐藏。