2013-08-16 34 views
1

时,我有一个jQuery Mobile的页面设置为这样:jQuery Mobile的JS脚本运行第一次,但不是回

<body> 
     <div class="normal" data-role="page" data-title="Photo Stream"> 

      <script type="text/javascript" src="js/photostream.js"></script> 

      <script type="text/javascript" charset="utf-8"> 
       // Wait for Cordova to load 
       document.addEventListener("deviceready", onDeviceReady, false); 

       // Cordova is ready 
       function onDeviceReady() { 
           } 
       </script> 

      <div id="programholder"> 

      ~~addtional HTML~~ 

外部JS脚本photostream.js作品应用程序第一次打开时,但随后无法正常工作再次如果我回到这个页面。我假设这是由于AJAX如何将页面加载到彼此之上,但是由于我的外部链接在data-role="page" div之内,我认为每次该元素重新出现时都会触发它。

有没有办法让外部的JS文件重新加载,只要这个页面被重新访问?

回答

1

如果我正确理解您的问题,您希望每次加载特定页面时显式加载外部js文件--photostream.js。但是这不会发生在JQuery Mobile中,因为AJAX加载页面的方式。

关闭我的头顶,是否尝试绑定外部脚本以在触发pageshow事件时加载。

$("#page1").on('pageshow', function(event, ui){ 
     var filename = "photostream.js";  
     var fileref=document.createElement('script'); 
     fileref.setAttribute("type","text/javascript"); 
     fileref.setAttribute("src", filename); 
    }); 
+0

太棒了!是的,这是我的问题,这工作。我给了我的'data-role ='page“'一个ID,并用$(”#photostreampage“).on(”pageshow“,function(event,ui){}); – MeltingDog

相关问题