Add Panel Dynamically

jQuery Mobile

by Omar X

HTML

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.css">
<script src="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.js"></script>
<div data-role="page" id="p1">
    <!-- header -->
    <div data-role="header"><a href="#mypanel" class="ui-btn ui-btn-right ui-btn-icon-notext ui-icon-grid ui-corner-all"></a>

         <h1>Header</h1>

    </div>
    <!-- content -->
    <div data-role="content">
         <h1>contents</h1>
 <a data-role="button" href="#p2">Page 2</a>

    </div>
    <!-- footer -->
    <div data-role="footer">
         <h1>Footer</h1>

    </div>
</div>
<!-- page -->
<div data-role="page" id="p2">
    <!-- header -->
    <div data-role="header"><a href="#mypanel" class="ui-btn ui-btn-right ui-btn-icon-notext ui-icon-grid ui-corner-all"></a>

         <h1>Header</h1>

    </div>
    <!-- content -->
    <div data-role="content">
         <h1>contents</h1>
 <a data-role="button" href="#p1">Page 1</a>
 <a data-role="button" href="#p3">Page 3</a>

    </div>
    <!-- footer -->
    <div data-role="footer">
         <h1>Footer</h1>

    </div>
</div>
<!-- page -->
<div data-role="page" id="p3">
    <!-- header -->
    <div data-role="header"><a href="#mypanel" class="ui-btn ui-btn-right ui-btn-icon-notext ui-icon-grid ui-corner-all"></a>

         <h1>Header</h1>

    </div>
    <!-- content -->
    <div data-role="content">
         <h1>contents</h1>
 <a data-role="button" href="#p2">Page 2</a>

    </div>
    <!-- footer -->
    <div data-role="footer">
         <h1>Footer</h1>

    </div>
</div>
<!-- page -->

JavaScript

var panel = '<div data-role="panel" id="mypanel" data-position="right" data-display="push" data-theme="a"><div data-role="header"><h1>Panel</h1></div><ul data-role="listview" data-inset="true"><li><a>Listview</a></li></ul></div>';

$(document).one('pagebeforecreate', function () {
    $.mobile.pageContainer.prepend(panel);
    $("#mypanel").panel().enhanceWithin();
});