好的,这听起来超级简单!!但它让我发疯,让我大脑褪色:)
假设我有一个基本的选择框,例如:
<select id="test">
<option value="">--- select ---</option>
<option value="1">One</option>
<option value="1">Two</option>
</select>
我想要的是在以下状态下将“突出显示”类添加到选择中:
- 选择处于下拉/打开状态
- 选择有一个有效的选项被选中(即一个或两个)
但是,如果选择在没有有效选择的情况下被关闭,则需要删除该类(即,它已更改回“--- select ---”)
听起来很容易!!
我尝试了这似乎是显而易见的方式:
$(document).ready(function () {
$('#test').focus(function () {
$(this).addClass('highlight');
})
$('#test').change(function () {
if ($(this).val() != '') $(this).addClass('highlight');
else $(this).removeClass('highlight');
})
});
但它并不是 100% 有效,但它已经接近了,问题是如果你选择了一些东西,然后将它改回“--- select ---”但是你不会失去下拉的焦点并重新点击然后它不会再次添加“突出显示”类。
我已经尝试了许多添加额外事件的组合,比如点击,但我似乎无法让它完全按照我的意愿工作。这几乎就像我需要在选择上的“开放”事件,但显然不存在。
我在这里错过了一些非常明显的东西吗?因为我是一个称职的网络开发人员,他花了几个小时试图做到这一点!!哈哈...但是在新西兰已经很晚了,所以如果我有的话,这就是我的借口:)
谢谢,卡尔