Javascript 如何更改IE中select标记的这种行为

Javascript 如何更改IE中select标记的这种行为,javascript,jquery,internet-explorer,Javascript,Jquery,Internet Explorer,我的问题是: 我有一个选择标签,有两个选项——“你好”和“世界” html 但仍然有一个小问题:如果我选择Hello,然后获得Hello选项,焦点将保持不变,蓝色高亮显示。但是,如果我选择“你好”和“世界”选项,一切都会正常。。 我读到,对于选择菜单,选择一个选项时会发生更改事件!!!但该选项必须与先前选择的选项不同,才能触发更改事件 即使您再次选择相同的选项,也有没有办法不出现这种蓝色突出显示。聚焦时如何模糊它?但不确定这在IE中会如何表现 $('select').focus(function

我的问题是:

我有一个选择标签,有两个选项——“你好”和“世界”

html

但仍然有一个小问题:如果我选择Hello,然后获得Hello选项,焦点将保持不变,蓝色高亮显示。但是,如果我选择“你好”和“世界”选项,一切都会正常。。 我读到,对于选择菜单,选择一个选项时会发生更改事件!!!但该选项必须与先前选择的选项不同,才能触发更改事件


即使您再次选择相同的选项,也有没有办法不出现这种蓝色突出显示。

聚焦时如何模糊它?但不确定这在IE中会如何表现

$('select').focus(function() {
   $(this).blur();
});

编辑:我真傻,你可以用CSS删除轮廓。不需要使用Javascript

select, select:focus, select:active { outline: none; }

焦点模糊如何?但不确定这在IE中会如何表现

$('select').focus(function() {
   $(this).blur();
});

编辑:我真傻,你可以用CSS删除轮廓。不需要使用Javascript

select, select:focus, select:active { outline: none; }

假设select具有id
select
,您可以在select选项上使用单击事件:

$('option').click(function() {
    $('#select').blur();
});
$('#select').on('click', 'option', function() {
    $('#select').blur();
});
演示:

编辑

如果动态添加选项,则执行(假设select具有id
select
:)

编辑2

按enter键获得相同的结果:

$('#select').keydown(function(event) {
    // Enter pressed
    if(event.keyCode == 13) {
        $('select').blur();
    }
});

演示:

您可以在选择选项上使用单击事件,假设选择具有id
select

$('option').click(function() {
    $('#select').blur();
});
$('#select').on('click', 'option', function() {
    $('#select').blur();
});
演示:

编辑

如果动态添加选项,则执行(假设select具有id
select
:)

编辑2

按enter键获得相同的结果:

$('#select').keydown(function(event) {
    // Enter pressed
    if(event.keyCode == 13) {
        $('select').blur();
    }
});

演示:

为什么要投否决票?当然CSS选项一定是最好的选择!?javascript阻止了在IE9和IE10中打开选择框。@MattCain是的,我认为IE不会很好地打开它,因此我的CSS解决方案。如果目标是简单地删除焦点样式,CSS解决方案就可以了。为什么要投反对票?当然CSS选项一定是最好的选择!?javascript阻止了在IE9和IE10中打开选择框。@MattCain是的,我认为IE不会很好地打开它,因此我的CSS解决方案。如果目标是简单地删除焦点样式,CSS解决方案就可以了;但是,当动态添加选项时会发生什么呢!如何动态添加它们?仅选项或整个选择框?我只动态添加选项!!像这样{var optn=document.createElement(“OPTION”);optn.text=modtext;optn.value=value;optn.title=text;selectbox.options.add(optn);}TTGank you Simon:)你很棒。谢谢你,抱歉再次打扰你!不幸的是,现在我看到有一种情况,焦点仍然存在。想象一下,你点击了“选择”按钮,因为你看到了所有的选项,你看到突出显示的蓝色选项就是你想要的(因此不需要点击它)-您只需按enter键选择该选项,因此在本例中,该选项上没有单击事件,高亮显示的staysSimon thos reallu与我的第一个选项一起工作-这是默认设置;但是,当动态添加选项时会发生什么呢!如何动态添加它们?仅选项或整个选择框?我只动态添加选项!!像这样{var optn=document.createElement(“OPTION”);optn.text=modtext;optn.value=value;optn.title=text;selectbox.options.add(optn);}TTGank you Simon:)你很棒。谢谢你,抱歉再次打扰你!不幸的是,现在我看到有一种情况,焦点仍然存在。想象一下,你点击选择按钮,你看到了所有的选项,你看到蓝色高亮显示的选项是你想要的(因此没有必要点击它),你只需按enter键选择该选项,在这种情况下,该选项上没有点击事件,高亮显示保持不变