我可以设置select
框的下拉图标的样式。但是,我想根据下拉列表是否可见来切换图标。
我所做的就是使用:focus
select
来操纵图标。
问题出在最后一步。当用户单击屏幕上的任意位置 - 或按ESC键 - 关闭下拉列表时,焦点仍然在select
标记上,并且样式不会更改回来。只有在用户再次点击之前,焦点才会被删除,一切都恢复正常。
下拉关闭时是否有办法强制移除焦点?
这在Chrome中进行了检查。
https://codepen.io/igorspasic/pen/GQqKqy
P.S。当然欢迎使用javascript。
答案 0 :(得分:0)
您应该可以使用JavaScript将其设置为模糊。在这里,我使用了change
和mouseout
事件来消除焦点:
var select = document.querySelector('#x');
function blurSelect() {
select.blur();
}
document.onkeyup = function(e){
if (e.keyCode === 27) {
blurSelect()
}
};
select.onmouseout = function() {
blurSelect()
};

select {
color: white;
background-color: blue;
font-size: 20px;
}
select:focus {
background-color: red;
}

<select id="x">
<option>One</option>
<option>Two</option>
</select>
<br><br><br>
Q: How to remove focus on select when dropdown is closed and turn back to blue?
&#13;
希望这有帮助。
答案 1 :(得分:0)
您可以包含jQuery库,并在&lt; script&gt; 标记中添加以下jQuery代码。
$(document).ready( function() {
$(document).keyup(function(e) {
if (e.keyCode == 27) {
$("#x").blur();
}
});
$("#x").change( function() {
$("#x").blur();
});
});