Javascript 为什么我必须在IE中单击两次选择框选项才能使其消失?

Javascript 为什么我必须在IE中单击两次选择框选项才能使其消失?,javascript,jquery,html,jquery-mobile,drop-down-menu,Javascript,Jquery,Html,Jquery Mobile,Drop Down Menu,我的页面上有一个selectbox,它在除IE之外的所有浏览器中都运行良好。我在8和9上进行了测试,我也遇到了同样的问题。当我单击一个选项时,.change()事件会触发,就像它应该触发的一样,但是这些选项不会消失,直到我再次单击(奇怪的是,它不会触发单击事件),或者在选择框外单击。这对我来说没有问题,因为我使用chrome,但我的大部分用户都使用IE8 下面是.change()函数: $('#configEquipDesc').change(function () {

我的页面上有一个selectbox,它在除IE之外的所有浏览器中都运行良好。我在8和9上进行了测试,我也遇到了同样的问题。当我单击一个选项时,.change()事件会触发,就像它应该触发的一样,但是这些选项不会消失,直到我再次单击(奇怪的是,它不会触发单击事件),或者在选择框外单击。这对我来说没有问题,因为我使用chrome,但我的大部分用户都使用IE8

下面是.change()函数:

$('#configEquipDesc').change(function () {
            alert($(this).val());
            if ($(this).val() != 'unselected') {
                ajaxGetConfig($(this).val());
            }
        });
下面是select的HTML

<select name="configEquipDesc" id="configEquipDesc" data-native-menu="false" data-inline="true" class="configMenuEquip">
     <option value="unselected" data-placeholder="true">Inspection</option>
</select>

检查

使用ajax添加了更多选项,所有这些都可以完美地工作

如果这是一个动态创建的selectbox(我怀疑是这样),则需要使用delagation。尝试将jQuery更改为:

$('body').on('change','#configEquipDesc', function () {
    ajaxGetConfig($('option:selected', this).val());
});
看看这是否能解决你的问题


编辑-您试图获取的值是
所选选项
,对吗?不是select语句本身。因此,这里有一个小技巧,可以仅获取所选选项并将其发送到
ajaxGetConfig()
函数

您是否尝试删除警报?哈哈,是的,我将警报放入只是为了查看.change()事件何时触发。我现在尝试一下,但无论如何,它不是一个动态创建的选择框。选项是动态创建的,但是选择框是静态的。同样,这不起作用,但是谢谢你的建议。我喜欢它使代码看起来的样子,所以我现在还是要保留它。新的选择器语句非常棒,谢谢你让我知道它,但这仍然不能解决我需要点击两次的问题,哈哈