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