Предотвращение очередей событий jQuery - PullRequest
2 голосов
/ 28 января 2011

У меня есть следующий jQuery, который прекрасно работает:

<script>
$(document).ready(function() 
{ 
    $("#btnDropDown").click(function () {
        $("#ListboxWrapper").slideDown("fast");
        $("#<%=lstBoxCompany.ClientID%>").focus();
    });

    $("#ListboxWrapper").focusout(function () {
        $("#ListboxWrapper").slideUp("fast");
    });

});

</script>

Это исключение при фокусировке из #ListboxWrapper, нажав #btnDropDown. Это приводит к тому, что события накапливаются, а действия вызывают странные результаты. Я ищу какой-то способ предотвратить все дальнейшие действия jQuery после того, как одно из них сработало. Ожидаемый результат состоит в том, что только один из них может выполнить действие пользователя, а не создавать, как это происходит сейчас.

1 Ответ

1 голос
/ 28 января 2011

Вы можете использовать селектор : анимированный , чтобы ставить анимацию в очередь, только если ваш элемент еще не анимирован:

$("#btnDropDown").click(function() {
    $("#ListboxWrapper").not(":animated").slideDown("fast");
    $("#<%=lstBoxCompany.ClientID%>").focus();
});
...