Bonjour à tous,

Pour personnaliser quelques css, j'ai fait une petite fonction avec des colorPickers :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
//tableau avec les ID des inputs text qui seront remplis au choix couleur
var champs = new Array("menu_fond","menu_link","menu_link_hover");
 
//tableau des valeurs en provenance de la BDD
var coulDefaut = new Array("<?php echo $pref['menu_fond']; ?>","<?php echo $pref['menu_link']; ?>","<?php echo $pref['menu_link_hover']; ?>");
 
// var qui sera utilisée si le user change le code HEXA dans le input
var newCouleurChoisie; 
 
$.each(champs, function(i){
	$('#param_'+i).ColorPicker({ // ces DIV contiennent le petit carré du picker
		color: coulDefaut[i], //positionne le picker sur valeur BDD
		onShow: function (colpkr) {
			$(colpkr).fadeIn(500);
			return false;
		},
		onHide: function (colpkr) {
			$(colpkr).fadeOut(500);
			return false;
		},
 
                onChange: function (hsb, hex, rgb) {
                $('#'+champs[i]).val('#' + hex); //remplit le input du code coul
                }
         }); 
               //si le user saisit un code HEXA :
               $('#'+champs[i]).change( function(){
		newColorChoisie = $('#'+champs[i]).val();
		//alert(newColor); 
                //modifie l'apparence du selecteur du picker sur la coul saisie
		$('#param_'+i+' div').css('backgroundColor', newColorChoisie);
                //LA CA BLOQUE !
                // je voudrais que le picker, lorsque on le clique, affiche son 
                //curseur positionné sur la couleur qui vient d'être saisie
		$('#param_'+i).ColorPicker({
			color: newColorChoisie
		});
	});
 
}); //fin boucle each
J'ai commenté tant que j'ai pu, mais pas si simle.
Pour résumer, le paramètre "color" force la sélection d'une couleur quand on ouvre le picker, c'est la couleur par défaut. Au début, je veux qu'elle soit positionnée sur les valeurs de la BDD, et c'est le cas. Le input affiche également cette valeur en hexa, et le petit carré du picker "plié" est également de cette couleur.
Mais si le user veut modifier le input directement en saisissant un hexa sans passer par le picker, je veux qu'il soit modifié par cette saisie.
D'où cette partie finale du code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
$('#param_'+i).ColorPicker({
	color: newColorChoisie
});
Mais rien à faire, il reste bloqué sur la valeur BDD déclarée en début de fonction...
Merci aux champions de jquery qui passeraient par là...