Всем привет! Есть форма загрузки фотографий: Код (PHP): <input type="file" id="files" name="files[]" multiple> <output id="list"></output> <script src="/js/script.js"></script> И обработчик этой формы. при выборе фоток, появляются их превьюшки: Код (PHP): function handleFileSelect(evt) { var files = evt.target.files; // FileList object for (var i = 0, f; f = files[i]; i++) { if (!f.type.match('image.*')) { continue; } var reader = new FileReader(); reader.onload = (function (theFile) { return function (e) { $("#list").append( $('<div/>').attr({'class': 'photoBlock'}).append( $('<img/>').attr({'class': 'thumb', 'src': e.target.result, 'title': escape(theFile.name)}).append(escape(theFile.name)) ) ) }; })(f); reader.readAsDataURL(f); } } document.getElementById('files').addEventListener('change', handleFileSelect, false); $('#list').on('keyup mouseup', '.thumb', function(evt) { $(this).parent().remove() }); Все работает отлично, но! Если форма добавляется на страницу динамически: Код (PHP): var photoLabel = $('<label/>').append('Добавить фото'); var photoInput = $('<input/>').attr({'type': 'file', 'id': 'files', 'name': 'files[]'}).prop('multiple', true); var uploadList = $('<output/>').attr({'id': 'list'}); $('.uploadDiv').append(photoLabel, photoInput, uploadList); То эскизы фотографий не появляются. Подскажите, как правильно сделать или куда копать Спасибо
1. Несколько элементов на странице с одинаковыми id быть не должно! Даже, если это динамически добавленный элемент. Вместо id="files" сделайте класс class="files" 2. Изменить строку Код (PHP): // эту document.getElementById('files').addEventListener('change', handleFileSelect, false); // на эту $('parent_static_selector').on('change', '.files', handleFileSelect); Где "parent_static_selector" - это селектор ближайшего статичного родительского элемента для полей файла. В самом крайнем случае, можно даже взять"body", но это плохая практика.