我在页脚有三个选项卡:主页、促销和活动。我实现了通知徽章,当在数据库中加载新的促销时,移动页面的页脚显示1,如果插入更多,该数字将实时递增。现在,假设我从主页开始,我在“促销和活动”选项卡上看到了实时通知。但是,当我导航到events选项卡时,通知消失了,但如果我单击back to home选项卡,通知就会显示出来。我已经分别尝试了"pageinit“和"pageshow”,并使用了其他堆栈溢出问题中建议的测试警告消息。每次单击选项卡时,都会显示警报消息。但是,当我尝试使用append或html进行修改时,它不会输出通知徽章。我尝试将id添加到主页、促销和活动的data-role=page,出现警报,但append或html函数没有给出预期的结果。我在这里错过了什么?
<div data-role="page">
<div data-role="header">
........
</div>
<div data-role="content">
.......
</div>
<div data-role="footer" data-position="fixed" >
<div data-role="navbar" >
<ul>
<!---- The notification badge from jquery script get appended in these IDs----->
**<li><div id="home"></div>...........</li>**
**<li><div id="promotion"></div>......</li>**
**<li><div id="event"></div>..........</li>**
</div>
</div>
</div>
发布于 2012-06-09 04:56:03
我认为,如果我的第一个页面是主页,JQuery Mobile会将其存储在历史中,而访问的任何其他页面都将是ajax调用。而且,我一直将通知徽章保存在它们所属的页面中。例如。如果要添加新促销,则会将其附加到promotion.mobile.erb;如果要添加新事件,则会将其附加到event.mobile.erb中的div元素。只有当我的当前页面是主页时,我才能看到它。这是我之前的问题。
我是怎么解决这个问题的?我从application.mobile.erb中解压了页脚和页面元素,并在主页、促销和活动页面中添加了页面ids。然后,我在通知标记所在的div元素中添加了不同的I。
现在,当出现任何实时通知时,将其添加到promotion0或event0 div中,以便无论何时我们离开,我们都可以从该div中获取旧徽章,并使用pageinit将其重新发布到导航的页面div元素中,如下面的示例所示……
$('#promo_page').live('pageinit',function(event){
$('#promotion2').badger(oldBadge0);
$('#event2').badger(oldBadge_e0);
});
https://stackoverflow.com/questions/10940565
复制相似问题