如何在jQuery mobile中的pageshow中显示面板

时间:2013-05-05 01:08:08

标签: jquery css html5 jquery-mobile jquery-mobile-panel

我尝试在面板中添加一个手柄来切换它,

这是我的代码:http://jsfiddle.net/bjtn8/

我只想默认手柄显示,用它来显示或隐藏面板。

所以我使用下面的代码:

$("#slide-menu").panel("toggle").panel("close");

似乎行不通。

另一个问题是我应该为每个页面添加一个面板吗? 感谢。

1 个答案:

答案 0 :(得分:2)

工作示例:http://jsfiddle.net/Gajotres/qgDst/

您需要将面板放入每个页面和最后一个丁字裤,面板必须与内容处于同一级别而不是其中的一部分。

HTML:

<!DOCTYPE html>
<html>
    <head>
        <title>jQM Complex Demo</title>
        <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=no; target-densityDpi=device-dpi"/>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
        <script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>    
    </head>
    <body>
        <div data-role="page" id="index">
            <div data-theme="b" data-role="header">              
                <h1>Index page</h1>
            </div>

            <div data-role="content">

            </div>

            <div data-role="panel" id="left-panel" data-display="overlay" data-position="left" data-theme="c">
                <img src="small_image_as_button" /><!-- click here to open the panel -->
                <nav id="indice">
                    <!-- content here -->
                </nav>
                <div data-role="button" id="tick-button">>></a>                
            </div>            
        </div>    
    </body>
</html>   

Javascript:

$(document).on('pagebeforeshow', '#index', function(){ 
    $(document).on('click tap', '#tick-button', function(){ 
        $("#left-panel").panel( "open");       
    });      
});

CSS:

.ui-panel-closed {
    visibility: visible !important;  
    width: 100px !important; 
    left: 160px !important;
    overflow: visible !important;
}

.ui-content {
    padding: 0 15px 15px 15px !important;
}

#tick-button {
    position: absolute;
    top: 100px;
    right: -27px;    
    width: 25px;
    height: 100px;
    margin: 0 0 !important;
    border-radius: 0 1em 1em 0;
}

#tick-button .ui-btn-inner {
    padding: 0 0 !important;
    height: 100% !important;
    font:10px 'Courier New', 'Verdana',serif;     
    line-height: 100px;
    color: #555;
    text-shadow: 1px 1px #fff;   
}