Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.07.2016, 16:00
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

Задание цвета элементу списка с задержкой.
Добрый день уважаемые. Вот возникла необходимость в реализации следующего цикла.

Каждую секунду происходит замена цвета элементов строки списка, при этом на следующую секунду предшествующее значение класса предыдущего элемента убирается. Цикл бесконечен.

<ul id="list">
         <li>Один</li>
         <li>Два</li>
         <li>Три</li>
         <li>Четыре</li>
</ul>

$(function(){
        			$("#list li").each( function (){


        			setTimeout(function () {
        				$(this).css("color", "green")

								}, 1000);		        	

        			});

        	});

Подскажите, как такое реализовать. Мой JS не хочет почему-то задавать задержку.
Ответить с цитированием
  #2 (permalink)  
Старый 22.07.2016, 16:25
Аспирант
Отправить личное сообщение для Spass Посмотреть профиль Найти все сообщения от Spass
 
Регистрация: 14.07.2016
Сообщений: 86

this в setTimeout(function () работать не будет, точнее будет возвращать совсем не то что ты хочешь.
Ответить с цитированием
  #3 (permalink)  
Старый 22.07.2016, 16:53
Аватар для dd_smol
Кандидат Javascript-наук
Отправить личное сообщение для dd_smol Посмотреть профиль Найти все сообщения от dd_smol
 
Регистрация: 08.03.2015
Сообщений: 131

jQuery(function ($) {
	$('#list > li').each(function (i, el) {
		setTimeout(function () {
			el.style.color = 'green';
		}, 1000);
	});
});


this

Последний раз редактировалось dd_smol, 22.07.2016 в 16:56.
Ответить с цитированием
  #4 (permalink)  
Старый 22.07.2016, 20:03
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

Эмм чёт не понятно оно работает https://jsfiddle.net/BlackStar1991/ogkbtse2/
Оно ждет 3сек, и закрашивает все элементы списка разом(. Не то
Ответить с цитированием
  #5 (permalink)  
Старый 22.07.2016, 20:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Black_Star,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
var item = $("#list li"), indx = -1, len = item.length;
(function go()
{
  item.eq(indx).css("color", "")
  indx = ++indx % len;
  item.eq(indx).css("color", "green")
  setTimeout(go,1000)
}())
});
  </script>
</head>

<body>

<ul id="list">
  <li>Один</li>
  <li>Два</li>
  <li>Три</li>
  <li>Четыре</li>
</ul>



</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 22.07.2016, 22:11
Аватар для dd_smol
Кандидат Javascript-наук
Отправить личное сообщение для dd_smol Посмотреть профиль Найти все сообщения от dd_smol
 
Регистрация: 08.03.2015
Сообщений: 131

Сообщение от Black_Star Посмотреть сообщение
Эмм чёт не понятно оно работает https://jsfiddle.net/BlackStar1991/ogkbtse2/
Оно ждет 3сек, и закрашивает все элементы списка разом(. Не то
Все правильно сразу не сообразил цыкал отрабатывает сразу не дожидаясь функции с задержкой ...

jQuery(function ($) {
	$('#list > li').each(function (i, el) {
		setTimeout(function () {
			el.style.color = 'green';
		}, i * 1000);
	});
});

Последний раз редактировалось dd_smol, 22.07.2016 в 22:18.
Ответить с цитированием
  #7 (permalink)  
Старый 22.07.2016, 22:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

dd_smol,
Сообщение от Black_Star
Цикл бесконечен.
Ответить с цитированием
  #8 (permalink)  
Старый 23.07.2016, 08:26
Аватар для dd_smol
Кандидат Javascript-наук
Отправить личное сообщение для dd_smol Посмотреть профиль Найти все сообщения от dd_smol
 
Регистрация: 08.03.2015
Сообщений: 131

Ooops, Не внимательный я ... не стал читать пост до конца а полез смотреть код увидел проблемы и сделал свой вывод об ошибки на ней и заострил внимание. Прошу прошение что начал водить в заблуждение.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить стрелку к первому элементу списка на css imedia Элементы интерфейса 4 13.10.2015 11:59
Выбор селекта по элементу списка Царь Леонид Элементы интерфейса 3 06.12.2013 15:33
Не работает скрипт отображения списка Konstantine Javascript под браузер 3 18.03.2013 06:00
как перебрать элементы списка с задержкой xyzdsnxyz jQuery 4 20.01.2012 12:41
Как поменять стиль последнему элементу списка UL ARLEVNAR Элементы интерфейса 6 15.07.2010 09:58