JQuery: не работает цикл

elitedesign
На сайте с 25.10.2012
Offline
69
1174

Друзья, понимаю что пятница, вечер, но мой мозг уже разваливается. Наверняка причина окажется проста ))). Не работает цикл. Надписи рандомно должны выводиться через 1 секунду. Они и выводятся рандомно, но цикл не работает. Мозг отвалился, подскажите где я косякнул ))


<script type="text/javascript" src="http://infocdn-test.com/files/_js/jquery-1.10.2.min.js"></script>

<div id="buyers-notify">
<div class="buyers-icon"></div>
<div id="notify-text"></div>
</div>

<script>

function BuyClient(n, t) {
this.Name = n;
this.Town = t;
}

var ClientName = ['Домаш Вячеслав', 'Лагутов Руслан', 'Степанков Радислав', 'Перешивкин Ростислав'];
var ClientTown = ['Москва', 'Санкт-Петербург', 'Новосибирск', 'Екатеринбург', 'Нижний Новгород', 'Казань'];
var TovarPrice = ['1990'];
var data = [];
var i=0;
var namerand = Math.floor(Math.random() * ClientName.length);
var rolerand = Math.floor(Math.random() * ClientTown.length);

for (count=0;count<=3;count++)
{
setTimeout(function()
{
data = new BuyClient(ClientName[namerand], ClientTown[rolerand]);
ClientName.splice(namerand,1);
ClientTown.splice(rolerand,1);
$('#notify-text').html('<nobr>' + data.Name+',&nbsp' + data.Town+'<br />сделал(а) заказ на&nbsp;' +TovarPrice+'&nbsp;рублей.</nobr>');
},
1000);
}

</script>

Не могу понять почему скрипт останавливается после единовременного вывода на экран. Цикл то есть ведь. ))

Заранее спасибо. Ткните плиз в ошибку, как ее победить.

MT
На сайте с 17.01.2017
Offline
22
#1

Цикл прекрасно работает. Добавьте console.log(count) внутрь цикла, либо замените метод .html() на .append() и убедитесь в этом. А для вашей задумки лучше использовать функцию setInterval().

elitedesign
На сайте с 25.10.2012
Offline
69
#2
MikeTheRaven:
Цикл прекрасно работает. Добавьте console.log(count) внутрь цикла, либо замените метод .html() на .append() и убедитесь в этом. А для вашей задумки лучше использовать функцию setInterval().

Спасибо за Ваш ответ. поменял на .append. Да, цикл работает, но не так как я планировал. У меня задача: чтобы раз в секунду выводилась бы рандомная запись, а у меня вместо этого, они кучей сразу выводятся и остановка.

Мемори
На сайте с 11.11.2012
Offline
105
#3

на первый взгляд все таймауты запускаются практически одновремнно и имеют одну и туже задержку...

попробуйте вместо 1000 -> 1000*count

elitedesign
На сайте с 25.10.2012
Offline
69
#4

Спасибо всем! Все заработало! Сделал 1000*count

C
На сайте с 04.02.2005
Offline
291
#5


data

наверное


data[counti]

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий