我一直在移植我的应用程序以使用jqMobi和jqUI,但我遇到了骨干委托事件的问题。
jqUI创建侧导航栏的方式是嗯....至少可以说有趣。
每个面板都可以有一个独特的导航栏,但导航栏实际上永远不会对用户可见,您填充导航栏,然后jqUI将html复制到div#menu
元素中。
我的观点相当简单
MyApp.Views.UserMenu = Backbone.View.extend({
el: 'nav#user_menu',
initialize: function(){
//empty out and unbind in-case it is already populated
$(this.el).empty().unbind();
this.render();
},
events: {
"click div#add_friend": "new_friend"
},
render: function(){
$(this.el).append(HandlebarsTemplates['friends/new_friend']());
// here I am trying to change the 'el' to point to where the menu is in the DOM
this.el = 'div#menu';
this.delegateEvents();
return this;
},
new_friend: function(){
alert('clicked');
}
});
我在填充el
后尝试将div#menu
更改为nav
,但这不起作用。我也试过直接填充div#menu
,但这似乎也不起作用。
有什么建议吗?我假设问题是元素被移动,但它可能是其他东西,也许我不知道如何调试其他情况。