Задание цвета элементу списка с задержкой.
Добрый день уважаемые. Вот возникла необходимость в реализации следующего цикла.
Каждую секунду происходит замена цвета элементов строки списка, при этом на следующую секунду предшествующее значение класса предыдущего элемента убирается. Цикл бесконечен.
<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 не хочет почему-то задавать задержку. |
this в setTimeout(function () работать не будет, точнее будет возвращать совсем не то что ты хочешь.
|
jQuery(function ($) {
$('#list > li').each(function (i, el) {
setTimeout(function () {
el.style.color = 'green';
}, 1000);
});
});
this |
Эмм чёт не понятно оно работает https://jsfiddle.net/BlackStar1991/ogkbtse2/
Оно ждет 3сек, и закрашивает все элементы списка разом(. Не то |
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>
|
Цитата:
jQuery(function ($) {
$('#list > li').each(function (i, el) {
setTimeout(function () {
el.style.color = 'green';
}, i * 1000);
});
});
|
dd_smol,
Цитата:
|
Ooops, Не внимательный я ... не стал читать пост до конца а полез смотреть код увидел проблемы и сделал свой вывод об ошибки на ней и заострил внимание. Прошу прошение что начал водить в заблуждение. :)
|
| Часовой пояс GMT +3, время: 19:44. |