JQuery на событие фокуса с HTML-тегом выбора - PullRequest
5 голосов
/ 22 сентября 2009

Я использую 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>

Ответы [ 2 ]

2 голосов
/ 22 сентября 2009

Это, кажется, известная проблема в IE7 и вперед .

Как уже упоминалось, одна альтернатива - использовать событие onmousedown, чтобы обойти это.

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

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

        })
    });

Это не сработает с переходом в раскрывающийся список, хотя предполагается, что onfocusin также будет работать (но в jquery его нет).

0 голосов
/ 22 сентября 2009

Я думаю, что проблема скорее связана с тем, как использовался элемент управления <asp:DropDownList>. Не видя серверный код, сложно взглянуть на более полную картину. Можете ли вы также предоставить разметку aspx и код для вашей страницы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...