1

在我的项目中,我无法从另一个主干视图触发在一个主干视图中注册的点击事件。实际上我有一个文件类型输入对用户隐藏,我需要触发文件类型输入。

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");
 }
 ....
});

但我试过这样事件没有被触发。这怎么可能。

4

1 回答 1

3

events散列附加到表示视图的 jquery 元素,而不是主干视图本身。所以你很可能不得不做这样的事情:

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

但我不鼓励这种非模式,而是努力使用我们称之为事件聚合模式的东西。接下来,您可以找到一系列非常好的 SO 解决方案:

于 2013-02-05T11:01:19.527 回答