触发我有一个骨干视图呈现外部把手模板(* .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'首次或再次 –