1

我一直在移植我的应用程序以使用 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#menunavdiv#menu

有什么建议么?我假设问题是元素正在被移动,但它可能是别的东西,也许我不确定如何调试另一种情况。

4

0 回答 0