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

时间:2013-09-26 17:08:29

标签: javascript jquery html jquery-mobile drop-down-menu

我的页面上有一个选择框,除了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添加了更多选项,这一切都完美无缺。

1 个答案:

答案 0 :(得分:0)

如果这是一个动态创建的选择框,我怀疑它是,你需要使用delagation。尝试将jQuery更改为:

$('body').on('change','#configEquipDesc', function () {
    ajaxGetConfig($('option:selected', this).val());
});

并查看是否可以解决您的问题。

编辑 - 这是你试图获得价值的selected option,对吗?不是select语句本身。所以,这里有一个小技巧,只抓取所选选项并将其发送到您的ajaxGetConfig()功能!!