1

在 IE 中,当您选择一个选项并且它成为选定选项时,蓝色突出显示将一直保持,直到您单击选择标记之外的其他位置。(在 Firefox 中不是这样)

所以我写了一个脚本,当 select 上有一个 change 事件时,它会从元素中移除焦点。

但是仍然存在一个小问题:如果我选择 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();
    }
});
4

1 回答 1

1

虽然这是不好的做法,但试试这个

$('#select').mouseout(function(){$(this).blur();})
于 2013-03-05T05:53:42.970 回答