Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Скрыть теги с задержкой (https://javascript.ru/forum/jquery/14279-skryt-tegi-s-zaderzhkojj.html)

Andrei 09.01.2011 21:51

Скрыть теги с задержкой
 
Здравствуйте. Добавляю при клике div блоки на страницу, подскажите пожалуйста как их убрать по истечению 4 секунд с последнего клика ?

$(document).ready(function () {
    $("body").append('<div id="notesBlock"></div>');
    $('body').click(function () {
        $('#notesBlock').append('<div class="note error">error</div>');
        $('#notesBlock .note:last').slideDown(150);
        if (notesOff) clearTimeout(notesOff);
        var notesOff = setTimeout(function () {
            $('#notesBlock .note').remove();
        }, 4000);
    });
});

Amphiluke 09.01.2011 22:15

Сделайте, например, флаг notesOff свойством функции-обработчика. Тогда он будет сохраняться от вызова к вызову.
$(document).ready(function () {
    $("body").append('<div id="notesBlock"></div>');
    $(document).click(function () {
        $('#notesBlock').append('<div class="note error">error</div>');
        $('#notesBlock .note:last').slideDown(150);
        if (arguments.callee.notesOff) clearTimeout(arguments.callee.notesOff);
        arguments.callee.notesOff = setTimeout(function () {
            $('#notesBlock .note').remove();
        }, 4000);
    });
});

Andrei 09.01.2011 22:27

Amphiluke, разобрался, спасибо !

Nightmare 09.01.2011 23:20

delay(4000)

Andrei 10.01.2011 07:42

Спасибо, вместо Timeout сделал:
$('#notesBlock .note:last').slideDown(150).delay(3000).slideUp(300, function(){$(this).remove();});

Andrei 10.01.2011 17:31

Извиняюсь за вопрос, но как определить существует ли элемент, по id ?

if (элемент) alert(1);

Amphiluke 10.01.2011 17:39

Ну, если метод getElementById вернет null, то элемент не существует.


--

Либо, если нужен jQuery, то
if ($("#id").length == 0) alert("Element do not exist")

Andrei 10.01.2011 20:44

Amphiluke, спасибо

Nightmare 10.01.2011 23:54

.is('#myId')

or

if ($(id).length) // все кроме 0 имеют true так что можно и без сравнения


Часовой пояс GMT +3, время: 05:50.