Глюк с множественным вызовом 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, время: 17:39. |