7

ColorPickerプラグインを使用しています。次のコードでプラグインを初期化しました:

$(".colorpic").ColorPicker({
    color: '#0000ff',
    onShow: function (colpkr) {
        $(colpkr).fadeIn(500);
        return false;
    },
    onHide: function (colpkr) {
        $(colpkr).fadeOut(500);
        return false;
    },
    onChange: function (hsb, hex, rgb) {
        $(this).css('backgroundColor', '#' + hex);  <= $(this) not working 
    }
});

今私の問題はそれがイベント$(this)で機能していないということです。onchange助けてください?

4

2 に答える 2

9

このようにしてみてください:

$(".colorpic").each(function(){
    var $this = $(this);

    $this.ColorPicker({
        color: '#0000ff',
        onShow: function (colpkr) {
            $(colpkr).fadeIn(500);
            return false;
        },
        onHide: function (colpkr) {
            $(colpkr).fadeOut(500);
            return false;
        },
        onChange: function (hsb, hex, rgb) {
            $this.css('backgroundColor', '#' + hex);
        }
    });
});
于 2012-06-19T13:18:02.663 に答える
3

この場合、私が間違っていなければ関数に行くthisので、これは本当に大きな問題です。this次のことを試してください。

var colorPicker=this;
onChange: function (hsb, hex, rgb) {
    $(colorPicker).css('backgroundColor', '#' + hex); 
}
于 2012-06-19T13:17:05.737 に答える