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

标签 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());
            }
        });

这是选择的 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 添加了更多选项,并且一切正常。

最佳答案

如果这是一个动态创建的选择框(我怀疑是这样),您需要使用延迟。尝试将您的 jQuery 更改为:

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

看看是否能解决您的问题。

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

关于javascript - 为什么我必须在 IE 中单击两次选择框选项才能使其消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19034379/

相关文章:

javascript - 添加元素有效,但会清除输入值

c# - 是否可以通过Ajax上传文件?

javascript - Angular : can't apply a filter to data loaded via $http

python - 有没有办法将变量传递给 Jinja2 parent ?

javascript - 类型错误 : value is undefined jquery

javascript - 如何将行传递给内部多个请求

javascript - jQuery 动画点击多次

javascript - document.getElementById 与 jQuery $()

javascript - 如何使用 jQuery 应用于所有 href attr

javascript - 如果下拉选择值为 1,JQuery 添加必需的属性