在IE中,当您选择一个选项并且它成为所选选项时,蓝色突出显示将保持不变,直到您单击选择标记之外的其他位置。 (在Firefox中,它不是那样)
所以我写了一个脚本,当select上有更改事件时,会从元素中删除焦点。
但仍然存在一个小问题:如果我选择Hello然后再选择Hello选项 - 焦点将保留并且蓝色突出显示。但是,如果我选择你好,然后选择世界选项 - 一切正常..所以当你点击一个选项去除焦点时你会看到脚本。
然后我看到用户只需按下回车而不点击选项 - 所以我写了输入案例
但是一旦我开心,我就发现了一个问题。最后一个案例(我祈祷它是最后一个)与前一个案例几乎相同 - 你点击了选择,当然你看到了所有的选项,你看到突出显示的蓝色选项是你想要的 - 但是这次你决定不按回车来选择那个选项,而只是再次点击选择标签 - 所以在这种情况下,选项上没有点击事件,没有按下输入和没有改变事件和突出显示保持 - 是有什么方法可以解决这个问题
$('#select').change(function() {
$(this).blur();
});
$('#select option').click(function(event) {
$('#select').blur();
});
$('#select').keydown(function(event) {
// Enter pressed
if(event.keyCode == 13) {
$('#select').blur();
}
});
答案 0 :(得分:1)
虽然这是不好的做法,但试试这个
$('#select').mouseout(function(){$(this).blur();})