【发布时间】:2012-09-08 20:24:50
【问题描述】:
模型中有一个带有事件click 的“视图”。使用 jQuery 的流沙效果插件后,对象失去了它们的事件处理程序。我已经尝试在backbone.js 中使用标准方法为事件添加监听器:
events: {
"click .objContact" : "openChat"
}
和jQuery一样的工具delegate:
var self=this;
this.$el.delegate('.objContact','click', function(){
self.openChat();
});
和live:
var self=this;
this.$el.find('.objContact').live('click', function(){
self.openChat();
});
但click 事件消失了。
可能是什么问题呢?我该如何解决?
UPD:调用'Quicksand'是在Backbone.Router中(可能变化是直接通过jQuery获取的,不是Backbone),所以Backbone.View中不处理变化
UPD 2: 问题通过以下方式解决 - 将 click 事件的处理从 View-model 移至 View-collection。并用 live 处理(在on 无效)
【问题讨论】:
标签: javascript jquery events backbone.js quicksand