jquery mobile,以编程方式更改页面并在登陆后打开面板

时间:2014-06-10 09:57:30

标签: jquery-mobile

我正在使用Jquery Mobile 1.4,我想创建一个按钮,将用户发送到另一个页面,并在登陆后在这个新页面上打开面板:

我正在尝试这个:

$(document).on('pagecreate','#faq-page', function(){
    $('#faqcontactus').on("tap", function() {
        $( "body" ).pagecontainer( "change", "#welcome-page", { transition: "fade" });
        $( "body" ).pagecontainer( "getActivePage" ).find('#mypanel').panel("open");
    });
});

进入页面,打开面板,但立即关闭。

你能帮忙吗?

由于

2 个答案:

答案 0 :(得分:1)

在打开面板之前,您应该等到页面完全加载,即使用pagecontainershow

$(document).on("pagecontainershow", function () {
   var activePage = $.mobile.pageContainer.pagecontainer("getActivePage");
   if(activePage[0].id == "welcome-page") {
      $(".ui-panel", activePage).panel("open");
   }
});

答案 1 :(得分:1)

启动页面更改过程后,您无法执行此操作。该进程是异步的,并且窗格打开不会等待此函数结束。你需要做的是等待下一页变得可见,然后你应该触发面板。

这样的事情:

$(document).on('pagecontainershow', function (e, ui) {
    var activePage = $(':mobile-pagecontainer').pagecontainer('getActivePage');
    var activePageId = activePage .attr('id')
    if(activePageId === 'welcome-page') {
        activePage.find('#mypanel').panel("open");
    }
});