Показать сообщение отдельно
  #2 (permalink)  
Старый 22.03.2014, 16:04
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

var articlesn = 12;
for(var i=1;i<=articlesn;i++)
{
    alert(i);
}

С циклом-то у тебя все в порядке. У тебя в другом месте проблема. Смотри - ты пробегаешься по элементам и назначаешь им обработчик события
function() {
        $("#desc"+i).show(0);
    }

, но этот обработчик выполняется не сразу, а только при наведении мышкой. Естественно, там значение переменной i уже совершенно другое.

Вообще, внутри всевозможных обработчиков событий всегда доступна переменная this, в которой содержится ссылка на элемент, которому этот обработчик принадлежит. Попробуй достучаться до нужного desc, используя данные art, на который наводится мышка.

Если не получается достучаться внутри функции, то функцию можно сгенерировать динамически во время выполнения цикла с помощью new Function вот таким образом:
new Function("", "$('#desc"+i+"').hide(0);")

При этом в тело функции будет включена не сама переменная i, а ее значение, и все пройдет, как надо.

Последний раз редактировалось Erolast, 22.03.2014 в 16:15.
Ответить с цитированием