在下面的“ .input”中匹配一个标签。
该代码在所有浏览器中均能正常工作,但在Internet Explorer中除外,在Internet Explorer中,我需要单击两次选择框以获取下拉列表。
$(".input").focus(function () {
var rc = $(this).parents(".rc-input");
rc.removeClass("rc-input-default");
rc.addClass("rc-input-active");
});
如果我使用mousedown而不是专注于工作,但是在按Tab键时我没有得到想要的效果?
<div class="rc-input">
<select class="input">
...
</select>
</div>
最佳答案
这是IE中的错误。当您对版本8之前的IE中的选择框进行任何更改(包括通过更改类名进行的间接样式更改)时,它会重新创建基础的Windows下拉小部件,其副作用是将其重置为关闭状态。
在IE6-7上,作为一种解决方法,可以使用onfocusin
代替onfocus
;因为这是在选择集中之前发生的,所以重新样式不会关闭控件。或只使用简单的CSS :focus
规则优先于类更改,然后让IE6-7用户放弃输入突出显示。 (他们不配漂亮!)
有关组合这些方法的示例代码,请参见this answer。