【发布时间】:2020-05-05 09:49:20
【问题描述】:
这是我的 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)并且我在我的网站上管理这个属性(背景颜色)作为实时(当用户更改一些选项时,然后我更改背景颜色),所以我需要原始选项列表中的实时复制样式属性的解决方案,当我重置选择列表(使用$('.select2').select2())时,背景颜色也将被重置。
我该怎么做?
@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>
【问题讨论】:
标签: jquery jquery-select2