2

こんにちは、私はこのカラーピッカー ( http://www.eyecon.ro/colorpicker ) を使用しており、サーバー側で使用して選択した色を保存できるように、16 進値を取得しようとしています。提供されたリンクを確認すると、最後のオプションを使用しています。

 $('#colorSelector').ColorPicker({
 color: '#0000ff',
 onShow: function (colpkr) {
  $(colpkr).fadeIn(500);
  return false;
 },
 onHide: function (colpkr) {
  $(colpkr).fadeOut(500);
  return false;
 },
 onChange: function (hsb, hex, rgb) {
  $('#colorSelector div').css('backgroundColor', '#' + hex);
 }
});

私の問題は、そこから16進値を取得できないように見えることです...入力の名前を呼び出してその値を取得しようとしましたが、機能しません(クリックしてカラーピッカーを作成すると入力が 'style="display:none;"' に変更されるため、何も取得できません。その後、いくつかの単純な jQuery 呼び出しを使用して値を取得しようとしましたが、何も得られませんでした...

助けてください....

4

2 に答える 2

3

まず、スタック オーバーフローへようこそ!

onChange イベントで答えが得られるはずです。

// initial colour value
var currentHex = '#0000ff';

$('#colorSelector').ColorPicker({
    color: currentHex,
    onShow: function (colpkr) {
        $(colpkr).fadeIn(500);
        return false;
    },
    onHide: function (colpkr) {
        $(colpkr).fadeOut(500);
        return false;
    },
    onChange: function (hsb, hex, rgb) {
        // every time a new colour is selected, this function is called
        alert(hex); // left for debugging
        currentHex = hex;
    }
});

// The currentHex value should easily be accessible as a vaiable
于 2010-05-06T02:11:19.677 に答える
0

ソースを見ると、著者はこれを使用して取得しています。

var div = $('#colorSelector'); // DOM element it is attaced to
var color = $('#' + $(div).data('colorpickerId')).data('colorpicker').color // get id of colorpicker, the object it stored in data and get color
于 2010-05-06T02:28:28.103 に答える