【问题标题】:Adding Jquery Mobile Panel at run time在运行时添加 Jquery Mobile Panel
【发布时间】:2013-03-12 14:20:17
【问题描述】:

我正在尝试在我的应用程序中使用 jquery 移动面板作为导航菜单,当您单击页面上的菜单按钮时会出现此菜单,从文档中,我知道我应该将此菜单面板添加到每个页面。

由于我的页面也是在运行时添加的,所以我需要在创建页面时将菜单面板注入到页面中,我使用的以下代码不起作用:

var $menuElement = $("#menu");
if ($activePage.find($menuElement).length <= 0) {
    console.log("Adding menu");
    $menuElement.show().css({height:$(".fb-menu").find("li").size() * 5 + "px"});
    $menuElement.prependTo($activePage);
    $activePage.trigger('create');
    $activePage.trigger('update');
}

任何人都知道我应该如何将我的菜单面板添加到动态添加的页面中?

【问题讨论】:

    标签: jquery jquery-mobile jquery-plugins


    【解决方案1】:

    看看我关于这个解决方案的其他答案:https://stackoverflow.com/a/15223926/1848600

    这是您可以动态添加它的方式:

    $(document).on('pagebeforeshow', '[data-role="page"]', function(){                
        $('<div>').attr({'id':'mypanel','data-role':'panel'}).appendTo($(this));
        $('<a>').attr({'id':'test-btn','data-role':'button'}).html('Click me').appendTo('mypanel');
        $.mobile.activePage.find('#mypanel').panel();
        $(document).on('click', '#open-panel', function(){   
             $.mobile.activePage.find('#mypanel').panel("open");       
        });    
    });
    

    现场示例:http://jsfiddle.net/Gajotres/pZzrk/

    【讨论】:

    • 嗨,当页面已经存在于 dom 中时,Ur 方法可以正常工作,但在我的情况下,页面和面板本身都是动态添加的,我做了一个小提琴来展示这里的情况 - @小提琴中的 987654323@,一旦您单击添加页面链接转到新页面,面板就会停止工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    相关资源
    最近更新 更多