模型中有一個'View',事件爲click
。在爲jQuery使用Quicksand效果插件後,這些對象會釋放它們的事件處理程序。我試圖用標準方法Backbone.js的添加監聽事件:使用Quicksand後,Backbone.View中的'click'事件消失
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:調用 '流沙' 在Backbone.Router(直接由jQuery的,不骨幹來獲得受變化),因此更改不會在Backbone.View
UPD 2處理:通過以下方式解決問題 - 將click
事件的處理從視圖模型移動到視圖集合。並與現場(在on
沒有工作)
您可能需要['setElement'](http://backbonejs.org/#View-setElement)而不是'delegateEvents',具體取決於流沙對DOM的作用。 –
在_QuickSand_中有這樣一行'var $ dest = $($ sourceParent).clone()'。但想法(和文檔)'.live'是爲新創建的項目創建一個事件,但沒有奏效。 –
克隆只克隆一個元素,但不會將其插入到DOM AFAIK中。如何將它插入到DOM中可能會影響事件,甚至會影響附加到視圖本身的元素。從理論上講,用一個(據稱是唯一的)ID克隆和元素也可能是混淆的根源。 –