AntonTitovI
@AntonTitovI
Учю web

Почему не вижу a.remove при первом вызове события?

При первой загрузке файлов:
console.log -> " Object { length: 0, prevObject: Object[1] }";

При повторной загрузке файлов:
console.log -> "Object { 0: <a.remove>,  length: 1, prevObject: Object[1] }";

В обоих случаях шаблон успешно рендерится.
<form class="add" action="/admin/post_add" method="post" enctype="multipart/form-data">
   <input id="processImageUpload" name="process_img[]" type="file" accept="image/jpeg" multiple>
</form>

function AddFilesT (setting){
  this.input    = setting.input;
  this.template = _.template(setting.template);
  this.run();
}

AddFilesT.prototype.run = function () {
  var input      = this.input,
      template   = this.template,
      removeFile = this.removeFile;

  input.change(function (e) {
    var files = e.target.files;

    $.each(files, function (i, file) {

      var reader = new FileReader();
      reader.readAsDataURL(file);
      reader.onload = function () {
        input.after(template({
          url : reader.result,
          data : i
        }));
      };

    });

    removeFile();
  });

};

AddFilesT.prototype.removeFile = function () {
  console.log($('a.remove'))
};

var multiUpload = new AddFilesT({
  input : $('#processImageUpload'),
  template : "<img src='<%= url %>'>" 
            + "<a href='#' class='remove' data-remove='<%= data %>'>Удалить</a>"
});
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы