jQM - Persistent navbar
by Dragan Gaić
HTML
<link rel="stylesheet" href="http://jeromeetienne.github.com/jquery-mobile-960/css/jquery-mobile-fluid960.css">
<script src="http://timeago.yarp.com/jquery.timeago.js"></script>
<script src="http://imakewebthings.github.com/jquery-waypoints/waypoints.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<title>jQM Complex Demo</title>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
<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-theme="c" data-role="footer" data-id="foo1" data-position="fixed">
<div data-role='navbar'>
<ul id='custom-navbar'>
<li id="tab1"><a href='#' data-href='#index' class='ui-btn-active'>Index</a></li>
<li id="tab2"><a href='#' data-href='#second'>Second</a></li>
</ul>
</div>
</div>
</div>
<div data-role="page" id="second">
<div data-theme="a" data-role="header">
<h3>
Second Page
</h3>
<a href="#index" class="ui-btn-left">Back</a>
</div>
<div data-role="content">
</div>
<div data-theme="a" data-role="footer" data-position="fixed">
...
JavaScript
$(document).on('pagebeforeshow', '#index', function(){
$(document).off('click', '#custom-navbar li').on('click', '#custom-navbar li', function(e){
var selectedLi = $(this);
$('#custom-navbar li').each(function( index ) {
var loopLi = $(this);
if(loopLi.find('a').hasClass('ui-btn-active') || loopLi.find('a').hasClass('ui-state-persist')) {
loopLi.find('a').removeClass('ui-btn-activ').removeClass('ui-state-persist');
}
if(loopLi.attr('id') == selectedLi.attr('id')) {
loopLi.find('a').addClass('ui-state-persist');
}
});
setTimeout(function(){
$.mobile.changePage( selectedLi.find('a').attr('data-href'), { transition: "slide"});
},100);
});
});