JS / CSS代码适用于Chrome,但不适用于Firefox

时间:2018-11-27 23:19:12

标签: javascript html css

我有一些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>

enter image description here

1 个答案:

答案 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);
});

https://codepen.io/anon/pen/NELLNx