Библиотека jscolor устанавливает функцию onchange для новых входов

Привет, я использую палитру цветов jscolor из http://jscolor.com/. Мне нужно динамически создавать новые входные данные, например с сайта

function add() {
    for(var i = 0; i < 100; i++) {
        var input = document.createElement('INPUT')
        var picker = new jscolor(input)
        picker.fromHSV(360 / 100 * i, 100, 100)
    document.getElementById('container').appendChild(input)
    }
}

вопрос в том, как правильно настроить функцию onchange и заставить jscolor передавать свой объект с информацией о цвете. Теперь я могу установить его только для статических элементов, как в примере

<input class="jscolor" onchange="update(this.jscolor)" value="cc66ff">
<p id="rect" style="border:1px solid gray; width:161px; height:100px;">
<script>
function update(jscolor) {
// 'jscolor' instance can be used as a string
document.getElementById('rect').style.backgroundColor = '#' + jscolor
}
</script>

Вот мой код не работает

var input = document.createElement('INPUT');
input.setAttribute("class", "jscolor");
input.setAttribute("onchange", "getColor(this)");
var picker = new jscolor(input);
... //And then I add this input to parent and picker shows

но onchange не срабатывает.


person Borys Shobat    schedule 24.06.2016    source источник
comment
Вы пытаетесь изменить значение текстового поля и обновить цвет текстового поля... или текстовое поле под ним?   -  person Naga Sai A    schedule 25.06.2016
comment
Мне нужно, чтобы jscolor передал данные о цвете для работы.   -  person Borys Shobat    schedule 26.06.2016


Ответы (1)


Я искал то же самое и заставил его работать, используя следующий код. Надеюсь это поможет!

var input = document.createElement('INPUT');
var picker = new jscolor(input, {
   value: "00ff00"
});

input.addEventListener('change', function(e){
   var color = e.target.value; 

   console.log(color);
});

person user3630486    schedule 06.10.2016