jQuery mobile pageinit在刷新后才触发

jQuery mobile pageinit在刷新后才触发,jquery,ajax,json,jquery-mobile,Jquery,Ajax,Json,Jquery Mobile,我有一个名为ChooseType的页面,该页面将参数传递到另一个页面,即chooseCity with mobile.changePage。加载chooseCity页面时,在刷新页面之前,pageinit事件似乎不会触发。我尝试过pageshow,在PageCreate之前。我还禁用了标题中的ajax。我搜索的所有东西都没有找到解决方案。我应该提到的是,我的参数被正确传递,地址栏就是证明。以下是我在chooseType中的代码: <div id="type" data-role="p

我有一个名为ChooseType的页面,该页面将参数传递到另一个页面,即chooseCity with mobile.changePage。加载chooseCity页面时,在刷新页面之前,pageinit事件似乎不会触发。我尝试过pageshow,在PageCreate之前。我还禁用了标题中的ajax。我搜索的所有东西都没有找到解决方案。我应该提到的是,我的参数被正确传递,地址栏就是证明。以下是我在chooseType中的代码:

   <div id="type" data-role="page">
<div class="backgroundLeft">
<div data-role="header" class="heading">
<div class="backButton"><a href="index.html" data-ajax="false"><img src="images/backArrow.png" /></a></div>
    <h1>Best Car Repair Shops</h1>
    </div>

<div data-role="content">
  <div class="choiceList">
<h1>Please choose a shop Type</h1>
</div>
<ul data-role="listview" id="shopTypes" class="mainmenu">
<li><a href="#" class="typemenu" id="D">Diesel Repair</a></li>
<li><a href="#" class="typemenu" id="M">Mechanical</a></li>
<li><a href="#" class="typemenu" id="P">Paint and Body Shops</a></li>
<li><a href="#" class="typemenu" id="R">Tires</a></li>
<li><a href="#" class="typemenu" id="T">Transmission</a></li>
</ul>

</div>
<script type="text/javascript">
  $(document).on("pageshow", function(){
  $("#shopTypes li").on("click", "a", function(){
  var type = $(this).attr('id');
  $.mobile.changePage("chooseCity.html",{transition: "slide", data:{type:type}});
});
  });

</script>

</div>

</div>         

最佳汽车修理店
请选择一种商店类型
$(文档)。在(“页面显示”,函数()上){ $(“#shopTypes li”)。在(“单击”,“a”,函数()上{ var type=$(this.attr('id'); $.mobile.changePage(“chooseCity.html”,{转换:“幻灯片”,数据:{type:type}}); }); });
还有,我的代码来自chooseCity.html。我包括所有页面上的头部部分:

     <script src="jquery-mobile/jquery-1.11.1.min.js" type="text/javascript"></script>
$(document).bind("mobileinit", function(){
  $.mobile.defaultPageTransition = "slide";
  $.mobile.ajaxEnabled = false;
});
</script>
<script src="jquery-mobile/jquery.mobile-1.4.3.min.js" type="text/javascript"></script>
<script src="jquery-mobile/purl.js"></script>

</head>
<body>

<div id="city" data-role="page">
<script src="jquery-mobile/purl.js"></script>
<script type="text/javascript">
$(document).delegate("#city", "pageshow", function(){
    var url = $.url(document.location); 
    var type = url.param("type");
jQuery(function() {
$.ajax({
url: 'includes/type' + type + '.php',
processData: true,
data:{},
dataType:'json',
success: function(json) {
        $.each(json.shops, function(i, dat){
            var count = dat.count,
                city = dat.City;
    $("#cityMenu").append(
    '<li><a href="#">' + city + '<span class="ui-li-count">' + count + '</span></a></li>');
   });
   $("ul").listview("refresh");
   },
   error: function(x,y,z) {

   }
   });
   });

   });

</script>

<div data-role="header" class="heading">
<div class="backButton"><a href="chooseType.html" data-ajax="false"><img src="images/backArrow.png" /></a></div>
<h1>Best Car Repair Shops</h1>
</div>

<div data-role="content">
<div class="choiceList">
<h1>Please choose a City</h1>
<ul data-role="listview" id="cityMenu" class="mainmenu">

</ul>

</div>
</div>

</div>

$(document).bind(“mobileinit”,function(){
$.mobile.defaultPageTransition=“slide”;
$.mobile.ajaxEnabled=false;
});
$(文档).delegate(“#城市”,“页面显示”,函数(){
var url=$.url(document.location);
var type=url.param(“type”);
jQuery(函数(){
$.ajax({
url:'includes/type'+type+'.php',
processData:对,
数据:{},
数据类型:'json',
成功:函数(json){
$.each(json.shops,function(i,dat){
变量计数=数据计数,
城市=数据城市;
$(“#城市菜单”)。附加(
"("李"),;
});
$(“ul”).listview(“刷新”);
},
错误:函数(x,y,z){
}
});
});
});
最佳汽车修理店
请选择一个城市

它应该是
$(document)
最好把它放在主页的
标题中。编辑:chooseCity页面将通过Ajax加载,因此页面div之外的任何内容都将被忽略。这就是为什么
mobileinit
没有也永远不会开火。@Omar我尝试了$(文档);第一。我已经试过了头里面的功能,并在页面div里面没有用。你把它放在头的第一页加载(主页)?请尝试
pagecreate
,因为
pageinit
已被弃用,尽管它在1.5发布之前应该可以工作。执行以下更改
$(“#city#citymenu”)。追加
并对listview刷新执行相同操作。@Omar,我还尝试将其放置在索引页的标题中。。。仍不工作。请尝试运行基本代码,如console.log中的警报