У меня есть куча изображений, которые должны быть распределены в conatiner один за другим, что означает . Каждое изображение показывает точное после загрузки предыдущего изображения и показывает, и каждое изображение должно получить прослушиватель событий.
Вот мое решение https://jsfiddle.net/e2sfzn1u/4/
Я использовал Image.onload, чтобы добавить узел изображения в разметку и определить прослушиватель событий для этого узла, и когда они готовы, он переходит к другому изображению (рекурсивно).Добавление прослушивателей событий по массиву фото по определенному пути
var pics = [
'http://i.imgur.com/1oT2ZpOb.jpg',
'http://i.imgur.com/XsViuLib.jpg',
'http://i.imgur.com/aTDTI8Eb.jpg',
'http://i.imgur.com/4kLvWOdb.jpg'
]
var cont = document.getElementById('container');
var each = function(arr, i) {
if (i === undefined) {
i = 0;
}
if (i < arr.length) {
var img = new Image();
img.onload = function() {
cont.innerHTML += '<div class="sas" id="' + i + '" ></div>';
var pic = document.getElementById(i);
pic.appendChild(img);
pic.addEventListener('click', function() {
alert('mda')
});
each(arr, i + 1);
};
img.src = arr[i];
}
};
each(pics);
Выглядит просто, но есть проблема - прослушиватель событий определяется только для последнего элемента.
Вы можете попробовать настроить атрибут onclick на элементы, которые будут хранить переменную в атрибуте 'onclick'. – RRK