2

このjqueryカラーピッカープラグインhttp://www.eyecon.ro/colorpicker/をWebアプリケーションで使用しています。すべてが完璧に機能していますが、 onBeforeShowのパレットで元の色を設定しようとすると機能しません。

HTML

<div id="ncolor"></div><div id="ncolorpicker"><span id="ncpicker"></span></div>

Jquery

$("#ncolor").click(function(){
    var a = $("#ncolor").css("background-color");
    $("#ncolorpicker").show();
    $("#ncpicker").show().ColorPicker({
    flat: true,
    onBeforeShow: function () {
                  alert("yes");
                  $(this).ColorPickerSetColor(a);
    },
    });
});

私はonChangeを使用してますが、onSubmitは両方とも機能していますが、onBeforeShowでは機能していません。onBeforeShow内にアラートメッセージが表示されません。

必要なのは、表示する前にカラーパレットで#ncolorの背景色を設定したいことです。なぜonBeforeShowに入っていないのですか?誰かが私を案内してもらえますか?

ありがとう!

4

1 に答える 1

1

フラットモードでは onBeforeShow が起動しないようです。

フラット モードでは、colorプロパティを使用して初期色を設定できます。

.ColorPicker({flat: true, color: '#00ff00'});

Firefox では、$("#ncolor").css("background-color") は rgb(,,) 形式の文字列を返すことに注意してください。 color# 文字列 (#00ff00) または {r: 0, g: 255, b: 0} のような RGB オブジェクトを受け入れます

そのため、最初に何らかの変換を行う必要がある場合があります。

また、コードでは、.ColorPicker()クリックするたびに呼び出しています。これは不要です。

代わりに、.ColorPicker()一度呼び出して ColorPicker を設定できます。.ColorPickerSetColor()次に、クリックすると、表示/非表示機能を呼び出すだけで済みます。

例えば:

$(document).ready(function(){
    $("#ncpicker").ColorPicker({
        flat: true,
        // Initial colour here:
        color: '#0000ff'
    });
    $("#ncolor").click(function(){
        // Use your dynamic colour here - may change each time:
        $('#ncpicker').ColorPickerSetColor('#00ffff');

        // Put here your showing/hiding functionality.
    });
});

簡単な例: http://jsfiddle.net/jfrej/853bv/ ( http://www.eyecon.ro/colorpicker/の例から取得した表示と非表示を使用)。

于 2012-05-17T10:35:11.747 に答える