En JSColor, ¿cómo obtengo el hexágono del color?

Con JSColor, después de que el usuario elija un color, ¿cómo obtengo el “hex”?

$("input#colorpicker").css('background-color') => this returns background-color: rgb(107, 132, 255); 

Pero no un hex.

Supongo que jQuery.css devuelve el valor que se estableció. Pruebe la siguiente función para convertir RGB a HEX:

 function colorToHex(color) { if (color.substr(0, 1) === '#') { return color; } var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); var red = parseInt(digits[2]); var green = parseInt(digits[3]); var blue = parseInt(digits[4]); var rgb = blue | (green << 8) | (red << 16); return digits[1] + '#' + rgb.toString(16); }; colorToHex('rgb(120, 120, 240)') 

En realidad, hasta cierto punto, esto depende del navegador que devuelve en rgb o hexadecimal. De todos modos, consulte estos hilos, hay buenas discusiones al respecto y también hay muchas soluciones.

Variable hexadecimal de color de fondo a JavaScript

y

¿Cómo obtener un valor de color hexadecimal en lugar de un valor RGB?

y

¿Puedo forzar que jQuery.css (“backgroundColor”) devuelva en formato hexadecimal?

y

jquery valor de color css devuelve RGB?

Hay evento onchange disponible:

 $("input#colorpicker").change(function() { console.log(this.color); });