Jquery焦点事件与html选择标记

5 jquery

我正在使用jquery来更改下拉列表的背景.出于某种原因,现在需要两次点击才能选择一个项目,而不是一次点击.

我无法找到的是为什么会发生这种情况,以及有效的解决方法或更好的修复方法.这似乎是在ie7&ie 8中发生的(有一位朋友在他们的盒子上测试它)下面是我们用来测试这个问题的确切代码.

-----------------------------完成标记------------------- -------------

<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>

<style type="text/css">
    .yellowBackground, .yellowBackground > * > *
    {
        background-color: #FFFF79;
    }
</style>

<script type="text/javascript">

    $(document).ready(function() {
        $('select').focus(function() {

            $(this).addClass('yellowBackground');

        })
    });
</script>
</head>
<body>
    <form>
    <select>
        <option value="A">Option 1</option>
        <option value="B">Option 2</option>
    </select>
    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Rya*_*saw 2

这似乎是IE7 及更高版本中的已知问题

如前所述,一种替代方法是使用 onmousedown 事件来绕过此问题。

    $(document).ready(function() {
        $('select').mousedown(function() {

            $(this).addClass('yellowBackground');

        })
    });
Run Code Online (Sandbox Code Playgroud)

尽管 onfocusin 应该也可以工作(但它在 jquery 中不存在),但使用 Tab 键切换到下拉列表时这不起作用。