jQuery - уникальный контроль над классом с помощью onChange

Я использую JQuery ColorPicker в приложении. Когда цвет выбран и выбирается, цвет отображается в классе диапазона ".swatch". Однако, когда на одной странице есть две опции выбора цвета, span.swatch будет отображать тот же цвет, что и выбранный цвет. (см. скриншот).

Снимок экрана здесь: http://cl.ly/2MUU

Вот код, который я использую

jQuery('.colorselect').ColorPicker({
    onSubmit: function ( hsb, hex, rgb, el ) {
        jQuery(el).val(hex);
        jQuery(el).ColorPickerHide();
    },
    onBeforeShow: function () {
        jQuery(this).ColorPickerSetColor(this.value);
    },
    onChange: function (hsb, hex, rgb) {
        jQuery('.swatch').css('backgroundColor', '#' + hex);
    }
})

2 ответа

Попробуй это

$.each($('.colorselect'),function(){
    var $target = $(this);
    $(this).ColorPicker({
            onSubmit: function ( hsb, hex, rgb, el ) {
                           jQuery(el).val(hex);
                           jQuery(el).ColorPickerHide();
            },
            onBeforeShow: function () {
                     jQuery(this).ColorPickerSetColor(this.value);
            },
            onChange: function (hsb, hex, rgb) {
                     $target.find('.swatch').css('backgroundColor', '#'+hex);
            }
    });
});
onChange: function (hsb, hex, rgb) { 
        jQuery(this).find('.swatch').css('backgroundColor', '#' + hex); 
    }

Это должно сработать - хотя сам не пробовал.

Другие вопросы по тегам