Вот мой код HTML:
<select class="select2">
<option value="1" style="background-color: #ff0000;">OPTION 1</option>
<option value="2" style="background-color: #ffffff;">OPTION 2</option>
....
<option value="144" style="background-color: #000000;">OPTION 144</option>
</select>
и, наконец, я использую select2 для печати этого списка выбора:
$('.select2')select2();
Проблема с атрибутом стиля - когда я установите этот атрибут в каждый параметр, сценарий jQuery не копирует этот атрибут для списков <li>
.
Я знаю, я могу установить каждый background-color
в теги <style></style>
, но у меня есть больше вариантов (~ 150), и я управляю этим атрибутом (background-color) на моем сайте как живым (когда пользователь меняет некоторые параметры, я меняю цвет фона), поэтому мне нужно решение, которое будет атрибутом стиля live-copy из исходного списка параметров и когда я сбрасываю список выбора (используя $('.select2').select2()
), цвет bg также будет сброшен.
Как я могу это сделать?
@ UPDATE
Я решил проблему таким образом:
function formatState(data, container)
{
if (data.element)
{
$(container).css('background-color', '#'+$(data.element).attr('data-style'));
}
return data.text;
}
$('.select2').select2({templateResult: formatState});
и заменяю параметры HTML код:
<option value="1" style="background-color: #ff0000;">OPTION 1</option>
на это:
<option value="1" data-style="ff0000">OPTION 1</option>