#jquery #delay #slidedown #slideup
#jquery #задержка #Скольжение вниз #скользящий переход
Вопрос:
У меня есть этот код для сообщения об ошибке, которое перекрывает страницу. Я только что добавил прослушиватель щелчков — я хочу, чтобы он пропускал задержку и сразу закрывался, если на него нажимали. Однако ничего не происходит. Если я использую .hide() в прослушивателе щелчков, это работает. Но я хочу плавно перенести это.
Есть идеи?
// Flash messages effect
$("#FlashMessage").slideDown('250').delay(3000).slideUp('250');
// Hide flash message when clicked
$("#FlashMessage").click(function(){
$("#FlashMessage").slideUp('250');
});
Ответ №1:
Если #FlashMessage
это реальный флэш-объект, он может перехватывать входные данные и не выдавать событие, как ожидалось.
Возможно, я ошибаюсь, но возможным решением может быть использование .focus()
вместо .click()`
Попробуйте использовать изображение, а не flash, и протестируйте его, если оно работает. Я прав, и flash отклоняет событие.
Комментарии:
1. Привет, спасибо за ответ. Нет, это просто div с текстом. Я вижу, что происходит сейчас. Когда я нажимаю, это просто добавляет новую команду в конец очереди. Итак, мне нужно каким-то образом отменить существующую команду и заменить ее новой. Отменить задержку…
2. Привет, понял. Попробуйте:
$("#FlashMessage").stop(true,true).slideUp('250');
Ответ №2:
jquery.пропустить задержку невозможно. Вместо этого используйте методы тайм-аута js
$("#FlashMessage").slideDown('250');
window.setTimeout( function(){ $("#FlashMessage").slideUp('250'); },3000);
// Hide flash message when clicked
$("#FlashMessage").click(function(){
$("#FlashMessage").slideUp('250');
});