Динамически связывайте входной HTML-элемент с палитрой цветов

Я использую Палитру цветов Izzy.
Чтобы связать ввод с палитрой цветов izzy, мне просто нужно установить для атрибута класса элемента ввода значение izzyColor, а идентификатор ввода должен быть уникальным. С помощью javascript я динамически создаю ввод, когда нажимаю кнопку.

n = n+1;
id = "txtColor" + n;
input = document.createElement("input");
input.setAttribute("class","izzyColor");
input.setAttribute("id",id);

Затем я добавляю ввод к элементу td в таблице, но маленькое изображение, которое появляется рядом с соответствующим элементом ввода, не появляется. Кажется, проблема только тогда, когда я создаю ввод с помощью javascript, потому что, если я создаю элемент ввода с помощью html, он работает нормально.

Когда я проверяю элемент ввода html, созданный с помощью javascript, через исходный код, все атрибуты настроены правильно.


person Aikanáro    schedule 06.07.2012    source источник
comment
Просто мнение: я посмотрел код плагина, и он довольно дрянной. Если это сработает для вас, то отлично, но я бы выбрал что-то другое. Тот факт, что они не предоставляют простой способ вызвать плагин для нового набора элементов, довольно слаб. Просто мои два цента...   -  person lbstr    schedule 07.07.2012


Ответы (1)


Посмотрев на источник, похоже, что вы можете просто позвонить:

izzyColor(); 

Похоже, что это вообще не пространство имен. Они определяют его как this.izzyColor = function(){...}, но на тот момент я почти уверен, что this — это просто окно.

Я не уверен, что это будет делать с существующими входными данными. Вам может понадобиться сделать это:

$('input.izzyColor').removeClass('izzyColor').addClass('izzyExisting');
izzyColor();
$('input.izzyExisting').removeClass('izzyExisting').addClass('izzyColor');

Дайте мне знать, как это происходит, и мы можем работать оттуда.

person lbstr    schedule 06.07.2012
comment
Это работает, мне просто нужно было позвонить izzyColor() после input.setAttribute("id",id);, спасибо! - person Aikanáro; 07.07.2012