Выполнение jQuery повторяется / .FadeIn / .Hide - PullRequest
0 голосов
/ 26 февраля 2012

Следующий код отображает панель уведомлений / подсказку в верхней части веб-страницы.Он настроен на отображение полосы примерно каждую минуту.Однако он повторяет отображение сразу после скрытия.Мы только хотим отображать панель уведомлений каждую минуту.Кажется, что это работает нормально, если я использую страницу, но всякий раз, когда я выхожу за пределы страницы, она ведет себя странно.

Ответы [ 3 ]

1 голос
/ 26 февраля 2012

Может быть лучше изменить функцию displayNotificationBar следующим образом:

    function displayNotificationBar() {
        $('#notification_hdr').fadeIn(2000).delay(12000);
        if( $('#notification_hdr').is(':visible') ) {
             $('#notification_hdr').hide(2000)
        }
    }
1 голос
/ 26 февраля 2012
$('#notification_hdr').hide();
var T = setInterval(displayNotificationBar, 72000);

function displayNotificationBar(){
    $('#notification_hdr').fadeIn(2000, function() {
        $(this).delay(10000).hide(2000);    
    });
}

$('#close_btn').click(function() { 
    clearInterval(T);
    $('#notification_hdr').stop(true, true).hide(2000);
});

Цепочка должна работать, но это, безусловно, должно работать, если нет, я думаю, что ваша проблема в других местах.

0 голосов
/ 26 февраля 2012

Попробуйте использовать рекурсивную функцию, которая вызывается при полном обратном вызове hide ()

function displayNotificationBar() {
    setTimeout(function(){
        $('#notification_hdr').fadeIn(2000).delay(12000).hide(2000,displayNotificationBar    );
    },72000)
}

displayNotificationBar()
...