Глюк с множественным вызовом change()
Здравствуйте уважаемые гуру, очень нужна помощь, уже давно сижу в отладке одной проблемы.
Скрипт срабатывает при вызове селектора файлов, и выбора нескольких файлов. Почему то выбранные файлы дублируются, рандомное количество раз. В отладке стало понятно, что событие change() вызывается несколько раз для одного селекта. Перебрал все варианты... после отработки данной функции, фокус выполнения смещается куда то в файлы jquery после чего возвращается обратно, еще раз выполнять функцию. Сломал весь мозг...
$('.fileselecter').change(function(){
* Вот на этой точке я его ловлю**
fileselecter = this;
if (this.files && this.files[0]) {
for(var file = 0; file < this.files.length; file++){
if(!(this.files[file].type == "image/jpeg" || this.files[file].type == "image/png")){
alert('Неправильный тип файла. Нужен .jpeg или .png');
continue;
}
// $(fileselecter).parent().hide();
var reader = new FileReader();
reader.onload = function (e) {
var img = document.createElement('img');
$(img).attr('src', e.target.result);
img.onload = function() {
*Сдесь фотография добавляется к списку фотографий .append() и т.д.*
}
};
reader.readAsDataURL(this.files[file]);
}
}
}
|
Этот кусок кода не находится в каком либо цикле?
Попробуй стек вызовов посмотреть в отладчике, что change генерирует. |
Нет, кусок кода находиться в $(document).ready(function() {Здесь});
Стек вызовов как посмотреть?? |
Спасибо ))) почитал, нашел. Я эту функцию вызываю таки в другой функции... а в конце вложенной функии еще раз вызываю родительскую, стандартная рекурсия и много часов тупняка )))
|
| Часовой пояс GMT +3, время: 23:57. |