Доступ к триггеру палитры цветов - PullRequest
1 голос
/ 03 апреля 2012

В моем проекте используется следующий инструмент выбора цвета jquery - www.eyecon.ro/colorpicker. Я использую несколько палитр цветов на одной странице, вызывая скрипт в классе (у меня есть 7 входов, к которым применяется палитра цветов, и ни один из них не связан). У меня проблема в том, что я не могу получить доступ к триггеру, поскольку нет никакой связи между палитрами цветов и их триггерами.
Кто-нибудь знает как это сделать? В основном я пытаюсь использовать эту функцию

(...)onChange: function (hsb, hex, rgb) {
     $(this).css('backgroundColor', '#' + hex);
}

Где $ (this) должен быть родителем, но, очевидно, это не так.

1 Ответ

4 голосов
/ 03 апреля 2012

Вам необходимо привязать функцию к контексту, поэтому перед вызовом функции объявите, что

var that = this // or whatever this(the context) is 

, а затем вызовите ее в обратном вызове вместо этого.

...)onChange: function (hsb, hex, rgb) {
     $(that).css('backgroundColor', '#' + hex);
}

РЕДАКТИРОВАТЬ: вот код javascript, который я бы написал.

$(document).ready(function() {
    $('.colorpickerHolder').each(function(o) {
        var _this = this;
        $(this).ColorPicker({
            onChange: function(hsb, hex, rgb) {

                _this.style.background = '#' + hex;
                // the input which is trigger the colorpicker is supposed to be $(THIS);
            }
        })
    })
});​

http://jsfiddle.net/camus/PQDf8/4/

...