Как продлить задержку?
if (!$('#elem').length) { var $elem = $(templateElem).appendTo('#cont').delay(5000).queue(function (next) { $(this).remove(); next(); }) } else { var $elem = $('#elem').eq(0).stop(true).delay(5000).queue(function (next) { $(this).remove(); next(); }) } Создается элемент, который через 5 сек. удаляется. Если приходит команда на создание нового элемента, а старый еще жив, то отчет времени должен начаться заново. Почти час сижу, переставляю функции и все-равно не работает! |
Ладно, другой способ
if (!$('#elem').length) { var $elem = $(templateElem).appendTo('#cont').each( function () { var el = $(this); el.data('reload', function () { clearTimeout(el.data('timer')); el.data('timer', setTimeout((function (elem) { return function () { elem.remove() } })(el), 5000)); return el }); return this }).data('reload')() } else { var $elem = $('#elem').eq(0).data('reload')() } Он работает, но можно как-то упростить код? |
Shitbox2,
Без необходимого HTML контента, - отклики помогающих минимальны обычно |
Тут он совершенно минимальный
<div id="cont"></div>и templateElem = '<div id="elem">...</div>' |
Часовой пояс GMT +3, время: 08:18. |