在BackboneJS中从另一个文件触发单击事件

时间:2013-02-05 10:25:43

标签: backbone.js

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

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 个答案:

答案 0 :(得分:3)

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

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

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