觸發我有一個骨幹視圖呈現外部把手模板(* .hbs)。該視圖在實例化的另一視圖中呈現,實質上:骨幹JS事件不會對動態添加元素
MainAppView
render: function() {
//load main layout
var childView = new ChildView();
}
ChildView
render: function() {
$('body').append(this.template(data));
}
template:
<ul id="someId">
<li><a> {{data}}</a></li>
</ul>
and an events hash in the childView like this:
events: {
'click #someId li a' : 'doSomething'
}
doSomething: function() { event.preventDefault(); console.log("exit");}
這就是它的要義。問題是,選擇器#someId li a
不起作用,它無法執行doSomething
我使用jQuery驗證選擇器,通過綁定Chrome控制檯中的函數doSomething,可以正常工作。
我想我知道它爲什麼不能在Backbone中工作,但HBS模板在ChildView實例化後觸發delegateEvents後呈現,這意味着我沒有使用選擇器的元素,因此沒有任何東西界。我嘗試了一個身體前綴,但是,也沒有工作。
我需要做什麼?
'$( '身體')追加(this.template(數據));'只有instanciating'ChildView'外觀奇。初始化之後,事件通過'delegateEvents()'方法建立。 DOM操作,如'空()'或'HTML()'上的父節點調用時可能會刪除這些偵聽器。請添加呈現'MainAppView'的方式。檢查是否有之前'使()的任何這些調用的''荷蘭國際集團的ChildView'首次或再次 –