【发布时间】:2014-10-21 11:04:36
【问题描述】:
我已经非常仔细地寻找这个问题的答案好几个小时了,但一直没有找到答案。
我有一个选择框,可以根据所选选项的背景颜色更改背景颜色。此功能在 Chrome 中有效,但在 Firefox 中无效,无论您选择哪个选项,它都会变成蓝色并保持蓝色。所选选项的文本出现在选择中,但不显示背景颜色。
我已经尝试过使用 ::selected {} 之类的 CSS。我最接近的是使用不同的 StackOverflow 答案来创建阴影框或在焦点更改时更改颜色,但到目前为止还没有真正的运气。
这是我的代码:
CSS:
#WHITE {background-color: white;}
#GRAY {background-color: rgb(194,194,194);}
#PINK {background-color: rgb(255,153,203);}
#YELLOW {background-color: rgb(254,255,153);}
#ORANGE {background-color: rgb(255,204,154);}
jQuery:
$(document).ready( function () {
var color = $("option:selected", "#colorSlct").css("background-color");
$("#colorSlct").css ("background-color", color);
});
$(document).on('change', '#colorSlct', function () {
var color1 = $("option:selected", this).css("background-color");
$("#colorSlct").css ("background-color", color1);
});
csp:
<select id = "colorSlct" type = "select" class = "select2" style = "margin-left: 0;">
<option id = "WHITE"> </option>
<option id = "GRAY" #($s(color="GRAY":"selected='selected'",1:""))#> Gray </option>
<option id = "PINK" #($s(color="PINK":"selected='selected'",1:""))#> Pink </option>
<option id = "YELLOW" #($s(color="YELLOW":"selected='selected'",1:""))#> Yellow </option>
<option id = "ORANGE" #($s(color="ORANGE":"selected='selected'",1:""))#> Orange </option>
</select>
任何提示将不胜感激。非常感谢您的帮助。
【问题讨论】:
-
并非如此。我不一定想用 CSS 编辑它,尽管如果那是正确的方法我可以。我真的很想创建正确的 jQuery 函数来完成这项任务。