使用pagecontainer导航到外部页面时不会触发事件

时间:2014-05-24 12:07:03

标签: jquery html ajax jquery-mobile cordova

Html 1:第一页

<script src="js/jquery-1.9.1.min.js"></script>
<script>
        $(document).bind("mobileinit", function(){
            $.mobile.defaultPageTransition = "slide";
            $.mobile.linkBindingEnabled =true;
            $.mobile.ajaxEnabled= false;
        });            
</script>
<script src="js/jquery-mobile.1.4.2.min.js"></script>
<script>
  $(document).on("pagecreate",function(){
    $(".anchor").click(function(){
       $( ":mobile-pagecontainer" ).pagecontainer( "change", "second.html" , { transition:"pop"});
     });       
 });
</script>

Html 2:第二页

<script src="js/jquery-1.9.1.min.js"></script>
<script>
        $(document).bind("mobileinit", function(){
            $.mobile.defaultPageTransition = "slide";
            $.mobile.linkBindingEnabled =true;
            $.mobile.ajaxEnabled= false;
        });            
</script>
<script src="js/jquery-mobile.1.4.2.min.js"></script>
<script>
  $(document).on("pagecreate",function(){

    alert("Instead of alert im going to use ajax ");
 });

问题:

我尝试使用pagecontainer将页面从第一页更改为第二页,并且它正常工作。 问题是 我需要使用ajax和pagecreate在第二页中加载一些内容,pageshow在更改页面时没有任何工作但如果我单独运行第二页它正在工作...... 提前致谢

1 个答案:

答案 0 :(得分:4)

为了能够解决这个问题,您需要了解jQuery Mobile页面处理的工作原理,并且您无法解决此问题。

当jQuery Mobile处理页面时,只有第一个 HTML 文件完全加载到 DOM 中,所有中间文件仅部分加载。当我说部分时,我的意思是 HEAD 将被剥离,只会加载FIRST data-role =&#34; page&#34;

因此,如果您有2个页面,例如,假设第一个名称为 main.html ,第二个名称为 second.html ,则拉丁说两个hava 5 data-role =&#34; page&#34; div容器。

main.html 中的所有页面都会在应用初始化期间加载到DOM中,但是当您将页面更改为 second.html 时,只会先将数据 - role =&#34; page&#34; div容器将被加载到 DOM 中,其他所有内容都将被丢弃。

详细了解 here +解决方案。