我有一些html和JavaScript用于选择下拉框。当用户选择颜色时,我希望所选选项的背景成功更新为背景颜色。
在代码中,我正在体验Firefox所发生的情况,将鼠标悬停在一个选择选项上时,它将悬停颜色更改为蓝色,而当您选择它时,它将采用该背景颜色。
当我在Chrome中运行完全相同的代码时,它会成功使用所选选项的背景色。
如何使该跨平台兼容并正常工作?
$("#color_me1").change(function(){
var color = $("option:selected", this).css("background-color");
$("#color_me1").css("background-color", color);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label>Color One:</label>
<select id="color_me1" name="color1">
<option disabled selected value> -- select color -- </option>
<option value="800000" style="background-color:#800000">Maroon</option>
<option value="FF0000" style="background-color:#FF0000">Red</option>
<option value="FFA500" style="background-color:#FFA500">Orange</option>
<option value="FFFF00" style="background-color:#FFFF00">Yellow</option>
<option value="808000" style="background-color:#808000">Olive</option>
<option value="008000" style="background-color:#008000">Green</option>
<option value="800080" style="background-color:#800080">Purple</option>
<option value="FF00FF" style="background-color:#FF00FF">Fuchsia</option>
<option value="00FF00" style="background-color:#00FF00">Lime</option>
<option value="008080" style="background-color:#008080">Teal</option>
<option value="00FFFF" style="background-color:#00FFFF">Aqua</option>
<option value="0000FF" style="background-color:#0000FF">Blue</option>
<option value="000080" style="background-color:#000080">Navy</option>
<option value="808080" style="background-color:#808080">Gray</option>
<option value="FFFFFF" style="background-color:#FFFFFF">White</option>
</select>
<br>
答案 0 :(得分:1)
不确定为什么会发生这种情况,但这可以起作用:
$("#color_me1").change(function(){
var color = $("option:selected", this).get(0).style.backgroundColor
$("#color_me1").css("background-color", color);
});
或使用JavaScript:
$("#color_me1").change(function(){
var selectedOption = this.selectedOptions[0]
var color = selectedOption.style.backgroundColor
$("#color_me1").css("background-color", color);
});