Как продлить задержку?
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, время: 14:14. |