我一直在移植我的应用程序以使用 jqMobi 和 jqUI,但我遇到了主干委派事件的问题。
jqUI 创建侧导航栏的方式是 umm.... 至少可以说很有趣。
每个面板都可以有一个不同的导航栏,但导航栏对用户实际上是不可见的,您填充导航栏,然后 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
有什么建议么?我假设问题是元素正在被移动,但它可能是别的东西,也许我不确定如何调试另一种情况。