我在Xcode中使用jQuery Mobile作为我的PhoneGap应用程序。我创建了多个页面,页脚中有标签。它在静态页面中正常工作如下。
<div data-role="footer" data-position="fixed">
<div data-id="mainTab" data-role="navbar">
<ul id="footer_tabs">
<li><a href="search_page.html" data-transition="slideup" data-icon="search">Search</a></li>
<li><a href="my_favorite_page.html" data-icon="star" data-transition="slideup">Favorites</a></li>
<li><a href="my_account_page.html" data-icon="gear" data-transition="slideup">Account</a></li>
<li><a href="create_ad_page.html" class="ui-state-persist ui-btn-active" data-transition="slideup" data-icon="plus">Create Ad</a></li>
</ul>
</div>
<div>
当我尝试根据用户角色加载标签时。 页面中的HTML代码:
<div data-role="footer" data-position="fixed">
<div data-id="mainTab" data-role="navbar">
<ul id="footer_tabs">
</ul>
</div>
<div>
jQuery代码:
$('#footer_tabs').append('<li><a href="search_page.html" data-transition="slideup" data-icon="search">Search</a></li>');
$('#footer_tabs').append('<li><a href="my_favorite_page.html" data-transition="slideup" data-icon="search">Favorite</a></li>');
$('#footer_tabs').append('<li><a href="my_account_page.html" data-transition="slideup" data-icon="search">Account</a></li>');
if(userRole == '3'){
$('#footer_tabs').append('<li><a href="create_ad_page.html" data-transition="slideup" data-icon="search">Create Ad</a></li>');
}
$('#footer-tabs').listview('refresh');
静态加载图片:
从jQuery加载图片:
我也刷新了清单,但没有工作。我不知道问题是什么。 请帮我。
谢谢, -regeint
答案 0 :(得分:2)
我不确定您在jQuery Mobile框架中如何refresh
nabvar
小部件,但我知道您可以删除之前的navbar
并插入一个新的小部件:
//create an output variable, I used an array
var output = ['<div data-id="mainTab" data-role="navbar"><ul id="footer_tabs">'];
//push items onto the output array
output.push('<li><a href="search_page.html" data-transition="slideup" data-icon="search">Search</a></li>');
output.push('<li><a href="my_favorite_page.html" data-transition="slideup" data-icon="search">Favorite</a></li>');
output.push('<li><a href="my_account_page.html" data-transition="slideup" data-icon="search">Account</a></li>');
if(userRole == '3'){
output.push('<li><a href="create_ad_page.html" data-transition="slideup" data-icon="search">Create Ad</a></li>');
}
output.push('</ul></div>');
//this last line is important, the output array is being joined into a string, then appended to the footer element,
//also the `create` event is being triggered on the footer element so the jQuery Mobile framework will update the widget with all the necessary styles
$('[data-role="footer"]').html(output.join('')).trigger('create');
以下是演示:http://jsfiddle.net/ZVGSZ/
请注意,我创建了一个HTML字符串数组,然后join
将它们组合在一起以执行单个.append()
而不是每个HTML字符串的追加(.html(string) == (.remove() + .append(string))
)。
答案 1 :(得分:0)
我也没有代表感谢Jasper,但它是一个很好的解决方案。
只是想在这里添加我做的相同并使用空白导航栏进入,所以在html中有一个空白的div:
<div data-role="navbar" data-iconpos="left" id="PageLinks">
然后在剧本中:
$('#PageLinks').html(footerLinks.join('')).trigger('create');
定位它 - 如果人们的文件中有多个页面,则可能会有用。
再次感谢