2013-01-08 75 views
1

我试图在使用骨干网和JQM的项目中创建覆盖面板。覆盖面板应该像在JQM文档中描述的例子:带Backbone.js和JQuery Mobile的覆盖面板

http://jquerymobile.com/demos/1.2.0/docs/pages/popup/popup-panels.html

我的项目,该项目是基于第一步教程骨干和JQM,采用骨干路由。正常的路线changePage()运作良好。我只是无法让覆盖面板工作。

我为我的项目创建了一个git存储库。如果我点击标题中的“菜单”按钮,覆盖面板应该像上面的演示一样滑入。

https://github.com/Devthias/BackboneJQM.git

里面我的路由器我试图设置数据角色属性弹出bevor调用changePage功能。

var AppRouter = Backbone.Router.extend({ 

routes:{ 
    "":"home", 
    "settings":"settings", 
    "menuPanel":"menuPanel" 
}, 

initialize:function() { 
    // Handle back button throughout the application 
    $('.back').live('click', function(event) { 
     window.history.back(); 
     return false; 
    }); 
    this.firstPage = true; 
}, 

.... 

menuPanel:function(){ 
    console.log('#menuPanel'); 
    this.openPopup(new MenuPanelView()); 
}, 

changePage:function (page) { 
    $(page.el).attr('data-role', 'page'); 
    page.render(); 
    $('body').append($(page.el)); 
    var transition = $.mobile.defaultPageTransition; 
    $.mobile.changePage($(page.el), {changeHash:false, transition: transition}); 
}, 

openPopup:function (page){ 
    $(page.el).attr('data-role', 'popup'); 
    page.render(); 
    $('body').append($(page.el)); 
    var transition = $.mobile.defaultPageTransition; 
    $.mobile.changePage($(page.el), {}); 
} 

});

有人知道我做错了什么,可以帮助我吗?

非常感谢!

+0

你可能想要尝试将'page'传递给'openPopup'。 – fbynite

+0

是的,你是对的。我错过了openPopup函数中的页面参数(更新了存储库),但覆盖面板仍未显示。现在该网站转换为空白页面。 – Danny

回答

0

一个变化页是definitly了错误的举动..

对我来说,开始尽快工作,我已经把我的模板的占位符:

<div data-role="page">  
    <div data-role="content"> 

    ... 

    <div data-role="popup" id="myPopup" data-history="false"> 
     <span>&nbsp;<span> 
    </div> 
    </div> 
</div> 

,然后我的路由器我做了这样的事情:

openPopup:function (page){ 
    $('#myPopup').html($(page.el)).popup('open'); 
}