2015-10-08 1 views
1

J'utilise le sélecteur de couleurs Spectrum http://bgrins.github.com/spectrum. J'aime beaucoup, mais j'ai un problème.Sélecteur de couleur du spectre: Empêche le faux Annuler après le déclenchement de l'événement de modification

Lorsque j'entre une couleur par le texte (dans l'option d'entrée du sélecteur de couleurs) et que j'appuie sur Entrée, l'événement de changement est déclenché mais le sélecteur de couleur n'est pas fermé. Cela signifie que l'utilisateur peut toujours cliquer sur "Annuler", rendant le sélecteur de couleur à la couleur d'origine. Mais en réalité, il est trop tard - l'acte est fait!

Je dois soit fermer le sélecteur de couleurs lorsque vous appuyez sur Entrée, soit ne pas déclencher l'événement Change.

Fiddle 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"); 
    } 
}); 

Répondre

1

Vous avez probablement compris cela maintenant, mais vous pouvez utiliser l'événement de changement pour le changement et l'événement hide pour l'annuler comme ceci:

$("#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()); 
    } 
}); 

Le masquage uniquement est déclenché à partir d'une annulation.