jQuery - перезаписать задержку () действие? - PullRequest
0 голосов
/ 05 апреля 2011

У меня есть этот код для сообщения об ошибке, которое перекрывает страницу. Я просто добавил прослушиватель щелчков - я хочу, чтобы он пропустил задержку и сразу закрылся, если на нее нажали. Однако ничего не происходит. Если я использую .hide () в прослушивателе кликов, это работает. Но я хочу сделать это плавно.

Есть идеи?

// Flash messages effect
$("#FlashMessage").slideDown('250').delay(3000).slideUp('250');

// Hide flash message when clicked
$("#FlashMessage").click(function(){
    $("#FlashMessage").slideUp('250');
});

Ответы [ 2 ]

0 голосов
/ 23 апреля 2013

jquery.delay невозможно пропустить. Вместо этого используйте методы тайм-аута js

$("#FlashMessage").slideDown('250');
window.setTimeout( function(){ $("#FlashMessage").slideUp('250'); },3000);

// Hide flash message when clicked
$("#FlashMessage").click(function(){
    $("#FlashMessage").slideUp('250');
});

http://www.w3schools.com/js/js_timing.asp

0 голосов
/ 05 апреля 2011

Если #FlashMessage является фактическим Flash-объектом, он может захватывать ввод и не выдавать событие, как ожидалось.

Хотя я могу ошибаться, но возможное решение может заключаться в использовании .focus()of .click () `

Попробуйте использовать изображение, а не вспышку, и проверьте его, если оно работает.Я прав, и вспышка опровергает это событие.

...