Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery Mobile在导航离开时不更新或重新发布数据_Javascript_Jquery_Mobile - Fatal编程技术网

Javascript JQuery Mobile在导航离开时不更新或重新发布数据

Javascript JQuery Mobile在导航离开时不更新或重新发布数据,javascript,jquery,mobile,Javascript,Jquery,Mobile,我在页脚上有三个标签:主页、促销和活动。我已经实现了通知标记,当在数据库中加载新的升级时,移动页面的页脚显示1,如果插入更多,则该数字将实时递增。现在,比方说,如果我从主页开始,在“促销和活动”选项卡上看到实时通知。但是,当我导航到“事件”选项卡时,通知会消失,但如果我单击“返回主页”选项卡,通知会显示出来。我分别尝试了“pageinit”和“pageshow”,并在其他stackoverflow问题中给出了测试提示消息。每次单击选项卡时都会显示警报消息。但是,当我试图用append或html进

我在页脚上有三个标签:主页、促销和活动。我已经实现了通知标记,当在数据库中加载新的升级时,移动页面的页脚显示1,如果插入更多,则该数字将实时递增。现在,比方说,如果我从主页开始,在“促销和活动”选项卡上看到实时通知。但是,当我导航到“事件”选项卡时,通知会消失,但如果我单击“返回主页”选项卡,通知会显示出来。我分别尝试了“pageinit”和“pageshow”,并在其他stackoverflow问题中给出了测试提示消息。每次单击选项卡时都会显示警报消息。但是,当我试图用append或html进行修改时,它并没有用通知标记输出我。我尝试将id添加到主页、促销和事件、警报显示的data role=页面中,但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>

........
.......
    **
  • ….
  • ** **
  • ** **
  • …..
  • **
我认为,如果我的第一个页面是主页,JQuery Mobile会将其存储在历史记录中,访问的任何其他页面都将是ajax调用。而且,我一直在将通知徽章保存在它们所属的页面中。例如,如果正在添加新的升级,则会将其附加到promotion.mobile.erb;如果正在添加新事件,则会将其附加到event.mobile.erb中的div元素。只有当我的当前页面是主页时,我才能看到它。这是我在早些时候提出的问题

我是怎么解决的? 我从application.mobile.erb中删除了页脚和页面元素,并将页面ID添加到主页、促销和活动页面。然后,我向通知标记所在的div元素添加了不同的id

  • 对于主页中的div元素,我添加了0(您可以选择使其唯一的任何东西)
  • 对于促销页面中的div元素,我添加了1和
  • 对于event_页面中的div元素,我添加了2,如下面的代码中所示

    <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="home0"></div>...........</li>**
                             **<li><div id="promotion0"></div>......</li>**
                             **<li><div id="event0"></div>..........</li>**
         </div>
    </div>
    
       $('#promo_page').live('pageinit',function(event){
            $('#promotion2').badger(oldBadge0);
            $('#event2').badger(oldBadge_e0);
        }); 
    

    我真的很感谢你的帮助。如果我需要提供更多信息,请告诉我。