javascript - 将鼠标悬停在选项上时更改颜色

标签 javascript jquery

我用 javascript 做了一个选择,并用一个数组填充了它的选项。之后我写了一些 jquery 来尝试在我将鼠标悬停在选项上时更改选项的背景颜色,但似乎没有任何效果。每次我将鼠标悬停在选项上时,它们仍然突出显示为蓝色。

我是 javascript 和 jquery 的新手,这是我对为什么会发生这种情况的想法:这可能是因为选择中有一个标准的悬停功能,它总是会覆盖我的,或者我真的忽略了一个错误?因为我之前在 div 上测试过我的代码,并且代码在这里工作得很好

我的代码:

//arraycommObjName is an array with 4 elements to fill my selection
//$('#commObjs') is my select
for (i=0; i < arraycommObjName.length; i++) {
    $('#commObjs').append($('<option class="testoptions"></option>').attr("value", arrayCommObjID[i]).text(arraycommObjName[i]));
}


$(".testoptions").hover(function(e) { 
    $(this).css("background-color",e.type === "mouseenter"?"green":"red") 
})

请注意,是的,我知道最好使用 css 来执行此操作,但要求我仅使用 javascript 和 jquery 来执行此操作。

最佳答案

您可以使用 select2并添加一些 CSS 来覆盖默认样式。

下面是一个带有一些可怕颜色的示例,以证明您可以覆盖默认的 select2 白色和蓝色。

$("#states").select2();
#states {
  width: 300px;
}

.select2-results__option {
  color: orange;
  background-color: seashell;
}

.select2-results__option--highlighted {
  color: white !important;
  background-color: darkgreen !important;
}

.select2-container--default .select2-results__option[aria-selected=true] {
  background-color: darkgray;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>

<select id="states">
  <option value="">Select...</option>
  <option value="AZ">Arizona</option>
  <option value="CA">California</option>
  <option value="CO">Colorado</option>
  <option value="NV">Nevada</option>
  <option value="OR">Oregon</option>
  <option value="PA">Pennsylvania</option>
  <option value="RI">Rhode Island</option>
  <option value="SC">South Carolina</option>
  <option value="VT">Vermont</option>
  <option value="VA">Virginia</option>
  <option value="WV">West Virginia</option>
</select>

关于javascript - 将鼠标悬停在选项上时更改颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45961304/

相关文章:

javascript - 弹出窗口失去焦点时隐藏加载覆盖

javascript - ExtJS中多视口(viewport)的情况

javascript - $HTTP_RAW_POST_DATA 错误 - 未发布数据

javascript - 所选单选上的按键事件

javascript - 按类别划分的总数据属性值

javascript - .addEventListener - 长列表

javascript - 如何更改骨架自动加载的样式表的路径

Javascript 选项卡 - 事件类

javascript - PHP生成的json_encode列表中不显示 'null'

javascript - 如何在正则表达式中创建或运算符?