JQuery Select2下拉onchange选项文本颜色没有改变

Posted

技术标签:

【中文标题】JQuery Select2下拉onchange选项文本颜色没有改变【英文标题】:JQuery Select2 drop down onchange option text color not changing 【发布时间】:2016-01-26 21:01:40 【问题描述】:

我有一个使用 Select2 的下拉菜单。我需要更改onchange 上的下拉选项文本颜色。我做了如下:

$("#e1").change(function()
   $(this).css('color', 'red');
);

但它没有按预期工作。

小提琴:FIDDLE

Select2 版本:4.0

【问题讨论】:

【参考方案1】:

select2 更改了 html,您将不再拥有带有 ide1select。您将拥有的元素将是 divids2id_e1

看来:

id => "s2id_" + id

此外,您将不再有 change 事件,因为您的 div 将没有任何价值。您需要为s2id_e1select2-choice 元素使用click 处理程序:

$("#e1").select2();
$("#s2id_e1 .select2-choice").click(function()
   $(this).css('color', 'red');
);

【讨论】:

是否可以在 onchange() 上进行更改 不,当通过用户操作更改值时会触发更改。由于您最终会得到一个没有任何价值的 div,因此您需要忘记更改事件。【参考方案2】:

您使用填充在元素上的.data('select2'),如下所示:

$("#e1").select2();
$("#e1").change(function() 
    $("#e1").data('select2').selection.css('color', 'red');
);

这是updated jsFiddle

【讨论】:

以上是关于JQuery Select2下拉onchange选项文本颜色没有改变的主要内容,如果未能解决你的问题,请参考以下文章

使用 jquery 用新数据覆盖现有的 select2 多选下拉列表

求jquery版的多选树形下拉框的插件(Multiple ComboTree)?

制作网页中普通的下拉选框中有一个“onchange”事件。 JQuery EasyUI下拉选框中那个事件与其相似???

如何从 select2() 下拉 Jquery 中禁用选定属性?

如何利用select2下拉框插件方法限制选框项个数

select2 onchange 事件仅有效一次