Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.12.2012, 15:05
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Как продлить задержку?
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 сек. удаляется. Если приходит команда на создание нового элемента, а старый еще жив, то отчет времени должен начаться заново.

Почти час сижу, переставляю функции и все-равно не работает!
Ответить с цитированием
  #2 (permalink)  
Старый 27.12.2012, 23:25
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Ладно, другой способ
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')()
}

Он работает, но можно как-то упростить код?
Ответить с цитированием
  #3 (permalink)  
Старый 27.12.2012, 23:33
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Shitbox2,
Без необходимого HTML контента, - отклики помогающих минимальны обычно
Ответить с цитированием
  #4 (permalink)  
Старый 27.12.2012, 23:43
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Тут он совершенно минимальный
<div id="cont"></div>
и
templateElem = '<div id="elem">...</div>'
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как писать код который легко поддерживать, расширять, читать. Policeman Общие вопросы Javascript 3 24.03.2012 05:40
Как при быстром многократном клике по кнопке обрабатывать только первый клик battrack jQuery 3 22.03.2012 10:47
Как отловить обратное событие "click" ? jsuse Общие вопросы Javascript 2 18.01.2012 00:16
как реализовать передачу функции в функцию?? czp Общие вопросы Javascript 10 29.11.2011 19:21
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56