Javascript 为什么我必须在IE中单击两次选择框选项才能使其消失?
我的页面上有一个selectbox,它在除IE之外的所有浏览器中都运行良好。我在8和9上进行了测试,我也遇到了同样的问题。当我单击一个选项时,.change()事件会触发,就像它应该触发的一样,但是这些选项不会消失,直到我再次单击(奇怪的是,它不会触发单击事件),或者在选择框外单击。这对我来说没有问题,因为我使用chrome,但我的大部分用户都使用IE8 下面是.change()函数: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 () {
$('#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()事件何时触发。我现在尝试一下,但无论如何,它不是一个动态创建的选择框。选项是动态创建的,但是选择框是静态的。同样,这不起作用,但是谢谢你的建议。我喜欢它使代码看起来的样子,所以我现在还是要保留它。新的选择器语句非常棒,谢谢你让我知道它,但这仍然不能解决我需要点击两次的问题,哈哈