我正在使用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");
}
});
答案 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() );
}
});
仅从取消触发隐藏。