Я придерживаюсь понимания поведения каждого цикла.Каждая петля jQuery
Вот мой код:
$.each(thumbs, function() { // where thumbs is array of strings
project = this;
$('#gallery').append(
'<li>'
+ '<a href="/portfolio/' + project + '">'
+ '<img src="/img/' + project + '_bw.jpg" id="' + project + '_bw" />'
+ '<img src="/img/' + project + '_tn.jpg" id="' + project + '_tn" />'
+ '</a>'
+ '</li>'
);
// alert(project); - alerts every element of array as expected
$('#' + project + '_bw').load(function() {
// alert(project); - alerts only the last element of array,
// but as many times as many elements in array
$('#' + project + '_bw').fadeIn(150,function(){
$('#' + project + '_tn').css("opacity", 1);
});
});
});
Проблема заключается в том, что, когда я пытаюсь определить идентификатор элемента, где я хочу, чтобы выполнить функцию .load он придает эту функцию только к последнему элементу массив, который я просматриваю.
вам нужно положить груз в внешней функции и передать проект в качестве аргумента и вызвать функцию в цикле (см объем) –
Hi 3dgoo, конечно. Это массив строк: «proja», «projb», «projc» – zee
ваша нагрузка не успевает завершить цикл, как завершение всех итераций, чтобы каждый цикл запускал одну уникальную загрузку, как описано выше –