Элемент jQuery autohide через 5 секунд - PullRequest
87 голосов
/ 25 марта 2009

Можно ли автоматически скрывать элемент на веб-странице через 5 секунд после загрузки формы с помощью jQuery?

В основном, у меня есть

<div id="successMessage">Project saved successfully!</div>

что я хотел бы исчезнуть через 5 секунд. Я посмотрел на пользовательский интерфейс jQuery и эффект скрытия, но у меня возникли небольшие проблемы с его настройкой.

<script type="text/javascript">
        $(function() {
            function runEffect() {

                var selectedEffect = 'blind';

                var options = {};

                $("#successMessage").hide(selectedEffect, options, 500);
            };

            $("#successMessage").click(function() {
                runEffect();
                return false;
            });
        });
    </script>

Я бы хотел удалить функцию click и добавить метод тайм-аута, который вызывает runEffect () через 5 секунд.

Mucho Gracias!

Ответы [ 8 ]

196 голосов
/ 05 ноября 2010
$('#selector').delay(5000).fadeOut('slow');
105 голосов
/ 25 марта 2009
$(function() {
    // setTimeout() function will be fired after page is loaded
    // it will wait for 5 sec. and then will fire
    // $("#successMessage").hide() function
    setTimeout(function() {
        $("#successMessage").hide('blind', {}, 500)
    }, 5000);
});

Примечание : для того, чтобы ваша функция jQuery работала внутри setTimeout, вы должны обернуть ее внутри

function() { ... }
8 голосов
/ 02 июля 2015

Вы можете попробовать:

setTimeout(function() {
  $('#successMessage').fadeOut('fast');
}, 30000); // <-- time in milliseconds

Если вы использовали это, то ваш div будет скрыт через 30 секунд. Я также попробовал этот, и он работал для меня.

1 голос
/ 29 января 2014

Я думаю, вы могли бы сделать что-то вроде ...

setTimeout(function(){
    $(".message-class").trigger("click");
}, 5000);

и делайте свои анимированные эффекты по событию-клик ...

$(".message-class").click(function() {
    //your event-code
});

Привет

1 голос
/ 25 марта 2009

Вы используете setTimeout для своей функции runEffect:

function runEffect() {
    setTimeout(function(){
        var selectedEffect = 'blind';
        var options = {};
        $("#successMessage").hide(selectedEffect, options, 500)
     }, 5000);
}
0 голосов
/ 26 марта 2019

JQuery ( "success_mgs".) Шоу (). setTimeout (function () {jQuery (". success_mgs"). hide ();}, 5000);

0 голосов
/ 08 ноября 2017

Обратите внимание, что вам может потребоваться снова отобразить текст div после его исчезновения. Таким образом, вам нужно будет также очистить, а затем повторно показать элемент в какой-то момент.

Вы можете сделать это с 1 строкой кода:

$('#element_id').empty().show().html(message).delay(3000).fadeOut(300);

Если вы используете jQuery, вам не нужен setTimeout, по крайней мере, для автоматического скрытия элемента.

0 голосов
/ 05 июля 2017

Это то, как вы можете установить время ожидания после нажатия.

$(".selectorOnWhichEventCapture").on('click', function() {
    setTimeout(function(){
        $(".selector").doWhateverYouWantToDo();
    }, 5000);
});

// 5000 = 5сек = 5000 мсек

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