В моем проекте я не могу инициировать событие щелчка, зарегистрированное в одном представлении магистрали, из другого представления магистрали. на самом деле у меня есть ввод типа файла, скрытый от пользователя, и мне нужно запустить ввод типа файла.

var FileView = Backbone.View.extend({
 ....
 events : {
  "click .delete-image" : "deleteFile",
 }
 ....
});

var FilesView = Backbone.View.extend({
 ....
 events : {
  "click #attach" : "attachFile",
 },

 attachFile : function() {
  this.fileView.trigger("click .delete-image");
 }
 ....
});

Но я пробовал, как это событие не запускается. как это возможно.

1
Jaison Justus 5 Фев 2013 в 14:25

1 ответ

Лучший ответ

Хэш events присоединяется к элементу jquery, который представляет представление, а не к самому основному представлению. Так что вам, скорее всего, придется сделать что-то вроде этого:

attachFile : function() {
  $('.delete-image', this.fileView.$el).trigger("click");
}

Но я бы не одобрял такого рода не-шаблон и вместо этого работал бы над тем, что мы называем шаблоном агрегации событий. Вы можете найти коллекцию действительно хороших решений SO ниже:

3
Community 23 Май 2017 в 15:18