为什么我在IE浏览器中需要点击两次下拉框选项才能使其消失?

4
我网页上有一个下拉框,在除了IE以外的所有浏览器中都能很好地工作。我已经在IE 8和9上测试过,发现有同样的问题。当我点击一个选项时,.change()事件会被触发,就像它应该做的那样,但是选项直到我再次点击(这个奇怪地不会触发点击事件)或者点击下拉框外面后才消失。对我来说这不是问题,因为我使用的是Chrome,但是我相当大一部分用户使用IE8。 这是 .change() 函数: ```javascript function changeFunction() { // some code here } ```
$('#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可以添加更多选项,这一切都运作得非常完美。

你试过移除警告吗? - adeneo
哈哈,是的,我只是为了看 .change() 事件何时触发而放置了警报。 - Alex Kibler
1个回答

0
如果这是一个动态创建的下拉框,我怀疑是的话,您需要使用委托。尝试将您的 jQuery 更改为以下内容:
$('body').on('change','#configEquipDesc', function () {
    ajaxGetConfig($('option:selected', this).val());
});

看看这是否解决了你的问题。

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


我现在会尝试这个,但是就我所知,它不是一个动态创建的选择框。选项是动态创建的,但选择框是静态的。 - Alex Kibler
那个方法并没有起作用,但还是谢谢你的建议。我喜欢它让代码看起来的样子,所以我现在会保留它。 - Alex Kibler
新的选择器语句很棒,谢谢你让我知道它,但这仍然没有解决我需要点击两次的问题,哈哈。 - Alex Kibler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,