我有一个ASP.NET DropDownList控件,它可以呈现在页面上的下拉列表中(选择HTML标记) . 出于某种原因,当我在Internet Explorer中时,需要两次点击才能打开它并查看选项,这只是最终用户的额外点击 . 它在Google Chrome,Mozilla Firefox和Safari中运行良好 - 我只需点击一次即可查看选项的选项 . 为什么它在IE中无法正常工作?更重要的是,我如何在IE中修复它?
这是我的代码:
<asp:DropDownList id =“DDLClientName”runat =“server”EnableViewState =“False”AutoPostBack =“True”class =“InputField”onfocus =“Change(this,event)”onblur =“Change(this,event)”>
2 回答
不得不删除硬编码的onfocus事件 . IE处理焦点事件的第一次单击,第二次处理以展开下拉列表 . 我想这是IE的一个已知的怪癖以及其他400个怪癖 .
我仍在试图找出一种方法来改变焦点下拉的样式 . 根据您在此回调匿名函数中放入的代码,您可能仍需要在IE中单击两次下拉列表 . 我发现你可以使用其他控件,在这个函数中,它不需要两次点击 . 我现在就把它作为答案 . 我想因为微软我们不能在下拉菜单上使用onfocus . 我可能会尝试使用实际的选择标记,而不是使用Microsoft的ASP.NET DropDownList,看看我是否可以使用onfocus事件,而无需额外的点击 . 我对此表示怀疑 .
jQuery(this.Elements.DDLClientName).focus(function());
我有同样的问题,这是由于IE 10如何处理onFocus,它将第一个焦点视为点击 . 我做的是修复它是将mousedown事件绑定到click事件 . 然后,您可以在click事件中运行所需的任何代码 .
所以我的完整代码看起来像这样: