Javascript.RU

javascript jquery

Нужна небольшая помощь чайнику-

-->

$(document).ready(function(){
function start(){
var x = document.getElementsByTagName('p');
for(var i=0; i

This paragraph

Next paragraph

One more paragraph

переменная i не передается в setTimeout("$('p:eq(i)').fadeOut(3000)", 3000);

В чем ошибка? ( Пожалуйста для чайника.)

-2

Автор: Гость (не зарегистрирован), дата: 26 января, 2012 - 18:12
#permalink

Во-первых писать в setTimeout первым аргументом строку -- довольно плохая идея, лучше вставить туда функцию. А ничего не получается из-за того, что к моменту выполнения "$('p:eq(i)').fadeOut(3000)" переменная i уже успела на сто рядов измениться. Надо делать так:

for(var i = 0; i < len; i++){
(function(i){
setTimeout(function(){
$('p').eq(i).fadeOut(3000); // тут у вас, кстати, тоже была ошибка
}, 3000);
})(i); // зачем так делать смотрите в разделе "Замыкания" справочника
}


 
Поиск по сайту
Другие записи этого автора
AleksandrArt
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Популярные таги
Последние темы на форуме
Forum