Reputation: 976
Since my jQuery Mobile app turned out to be quite slow on the iPhone, I upgradeded it to the RC hoping to improve the speed.
However, I get a yellow "Error loading page" when I click on my navbar.
I'm handling it like this:
$('div[data-role="navbar"] a').live('tap', function () {
$(this).addClass('ui-btn-active');
$('div.content_div').hide();
$('div#' + $(this).attr('data-href')).show();
$("#departureslist").listview("refresh");
$("#arrivalslist").listview("refresh");
return false;
});
The View:
<body>
<div data-role="page" id="frontpage">
<div data-role="header">
<a data-icon="refresh" class="ui-btn-right" data-role="button" data-inline="true" data-iconpos="notext" id="refreshbutton"></a>
<div id="headerlogo"><img src="images/ajax-loader.gif" id="loader" /></div>
<div data-role="navbar">
<ul>
<li><a data-href="front" id="menu-front">Oversigt</a></li>
<li><a data-href="kort" id="menu-kort">Kort</a></li>
<li><a data-href="a" id="menu-a">Afgange</a></li>
<li><a data-href="b" id="menu-b">Ankomster</a></li>
</ul>
</div>
</div>
<div data-role="content">
<div id="front" class="content_div">
</div>
<div id="a" class="content_div">
<ul data-role="listview" id="departureslist" data-theme="c"></ul> </div>
<div id="b" class="content_div">
<ul data-role="listview" id="arrivalslist"></ul>
</div>
<div id="kort" class="content_div">
<img src="images/retinamap.png" style="width: 100%;" /> </div>
</div>
</div>
</body>
Upvotes: 0
Views: 1237
Reputation: 28187
I'd suggest using the data-id
property rather than data-href
, and you should also remove the ui-btn-active
class from the anchor tags in the tap
handler, otherwise all the buttons will eventually look like they are active:
$('div[data-role="navbar"] a').live('tap', function () {
$('div[data-role="navbar"] a').removeClass('ui-btn-active');
$(this).addClass('ui-btn-active');
$('div.content_div').hide();
$('#' + $(this).attr('data-id')).show();
$("#departureslist").listview("refresh");
$("#arrivalslist").listview("refresh");
return false;
});
Update the navbar
to:
<div data-role="navbar">
<ul>
<li><a data-id="front" id="menu-front">Oversigt</a></li>
<li><a data-id="kort" id="menu-kort">Kort</a></li>
<li><a data-id="a" id="menu-a">Afgange</a></li>
<li><a data-id="b" id="menu-b">Ankomster</a></li>
</ul>
</div>
See this jsFiddle.
Upvotes: 1