Javascript.RU

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

Создать задержку при выполнении функции
Для автоматизации действий на нужном мне сайте получил от товарища скрипт:
$('a:contains("xxxxx")').siblings('.xxxxx').each(function() {
  *функция*
}) ;


В принципе, задачу выполняет, но есть проблема: местный сервер не может обработать сразу несколько действий, ему необходима задержка после выполнения функции для каждого отдельного элемента. В результате при запуске скрипта только последний элемент набора оказывается подвержен воздействию функции. Можно ли вставить задержку так, чтобы для каждого элемента в отдельности функция выполнялась после настраиваемой паузы и как в таком случае должен выглядеть код?
Ответить с цитированием
  #2 (permalink)  
Старый 06.08.2014, 11:03
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

$('a:contains("xxxxx")').siblings('.xxxxx').each(function(index) {
  setTimeout(*функция*, (index * 100) || 10);
}) ;


где index - номер элемента набора.

Вообще, как правило, если вы используете setTimeout - значит что-то пошло не так (если вы конечно не делаете анимации)

Последний раз редактировалось tsigel, 06.08.2014 в 11:07.
Ответить с цитированием
  #3 (permalink)  
Старый 06.08.2014, 17:46
Аватар для Viral
Профессор
Отправить личное сообщение для Viral Посмотреть профиль Найти все сообщения от Viral
 
Регистрация: 26.04.2011
Сообщений: 472

Может, лучше посчитать элементы и setInterval,ом потом перебрать?
Как-то так, например
var a = $.makeArray($('a:contains("xxxxx")').siblings('.xxxxx')),
        l = a.length,
        i = 0,
        c;
c = setInterval(function(){
    if (i <= l){
        $(a[i]).(/*всякие действия*/);
    }else{
        clearInterval(c);
    }
    i++;
},1500);
Ответить с цитированием
  #4 (permalink)  
Старый 06.08.2014, 17:50
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Viral,
Интервалом вообще лучше не пользоваться, лучше запускать таймаут после каждой итерации.
http://learn.javascript.ru/settimeout-setinterval

Последний раз редактировалось tsigel, 06.08.2014 в 18:00.
Ответить с цитированием
  #5 (permalink)  
Старый 08.08.2014, 17:43
Аспирант
Отправить личное сообщение для Ленча Посмотреть профиль Найти все сообщения от Ленча
 
Регистрация: 13.07.2014
Сообщений: 78

delete

Последний раз редактировалось Ленча, 09.08.2014 в 03:37.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск функции при видимости объекта max0n Общие вопросы Javascript 2 24.06.2013 15:22
При вычислении значения функции страница зависает Nellie Ваши сайты и скрипты 1 08.04.2013 22:04
хитросплетения Global,контекст,this,Reference kefi Общие вопросы Javascript 109 20.11.2009 23:34
Помогите создать скрипт замены картинок при наведении курсора. SantaS Я не знаю javascript 3 05.06.2009 12:59
не работают функции при их вызове(не отображаются кнопки) badfilin Общие вопросы Javascript 0 08.04.2008 20:18