JQuery移动动态页面,更改页面后带有listview
我的JQuery移动应用程序试图动态填充页面的listview,这让我左右为难。我启动并运行了它,但发现它只有在我直接请求页面(例如mydomain.com/page.html)时才起作用。当我从另一个JQM页面链接到该页面时,它只有在使用浏览器中的刷新按钮后才起作用 这是我的JS代码JQuery移动动态页面,更改页面后带有listview,listview,jquery-mobile,dynamic-data,Listview,Jquery Mobile,Dynamic Data,我的JQuery移动应用程序试图动态填充页面的listview,这让我左右为难。我启动并运行了它,但发现它只有在我直接请求页面(例如mydomain.com/page.html)时才起作用。当我从另一个JQM页面链接到该页面时,它只有在使用浏览器中的刷新按钮后才起作用 这是我的JS代码 $(function() { var dirs=window.location.pathname.split('/'),
$(function() {
var dirs=window.location.pathname.split('/'),
current_dir =dirs[dirs.length-2];
var vars = [], hash;
var q = document.URL.split('?')[1];
if(q != undefined){
q = q.split('&');
for(var i = 0; i < q.length; i++){
hash = q[i].split('=');
vars.push(hash[1]);
vars[hash[0]] = hash[1];
}
}
alert(current_dir);
$.getJSON("../json.php",{
section: current_dir,
id: vars['id'],
query: vars['q']
},
function(json){
if (json.mededeling) {
$("#recent").append('<li data-role="list-divider" role="heading">Mededelingen<span class="ui-li-count">'+json.mededeling.length+'</span></li>');
//loop through deals
$.each(json.mededeling,function(i,item){
$("#recent").append('<li><a href="nieuws/='+item.id+
'" data-transition="slide">'+
'<h3>'+item.title +'</h3>'+
'<p>'+item.subtitle+'</p></a></li>');
});
}
if (json.nieuws) {
$("#recent").append('<li data-role="list-divider" role="heading">Nieuws<span class="ui-li-count">'+json.nieuws.length+'</span></li>');
//loop through deals
$.each(json.nieuws,function(i,item){
$("#recent").append('<li><a href="news.html?'+item.id+
'" data-transition="slide">'+
'<h3>'+item.title +'</h3>'+
'<p>'+item.subtitle+'</p></a></li>');
});
}
if (json.onderwijs) {
$("#recent").append('<li data-role="list-divider" role="heading">Onderwijs vandaag<span class="ui-li-count">'+json.onderwijs.length+'</span></li>');
//loop through deals
$.each(json.onderwijs,function(i,item){
$("#recent").append('<li><a href="onderwijs/index.html?'+item.id+
'" data-transition="slide">'+
'<h3>'+item.title +'</h3>'+
'<p>'+item.speaker+'</p></a></li>');
});
}
$("#recent").listview('refresh');
});
});
$(函数(){
var dirs=window.location.pathname.split('/'),
当前_dir=dirs[dirs.length-2];
var vars=[],散列;
var q=document.URL.split(“?”)[1];
如果(q!=未定义){
q=q.分割('&');
对于(变量i=0;imededlingen'+json.mededling.length+””);
//循环交易
$.each(json.mededling,函数(i,项){
$(“#最近”)。追加(“”);
});
}
if(json.nieuws){
$(“#最近”).append(“Nieuws'+json.Nieuws.length+” ”);
//循环交易
$.each(json.nieuws,函数(i,项){
$(“#最近”)。追加(“”);
});
}
if(json.onderwijs){
$(“#最近”).append(“Onderwijs vandaag'+json.Onderwijs.length+” ”);
//循环交易
$.each(json.onderwijs,函数(i,项){
$(“#最近”)。追加(“”);
});
}
$(“#最近”).listview(“刷新”);
});
});
所以我猜这与JQM的AJAX调用有关
我到处找,但现在我真的迷路了
非常感谢任何让我回到trach的帮助
谢谢在我第一次尝试更改事件侦听器后,它就可以工作了
$(document).on('pagebeforeshow', function(){
您好,很难在JSFIDLE上复制它(因为有多个页面)。当你打开/section\u one/?时,你能添加浏览器返回的内容吗?它输出请求的页面,但“content”div仍然为空。我很困惑,因为你说它在使用URL加载时可以工作。主要是因为pagebeforechange处理程序不是在加载第一个页面时调用的,而是在您尝试从该页面导航出去时调用的。是这样吗?在开始添加内容之前,请尝试在页面中导航。我并不是说这是解决办法,但它可能有助于澄清问题所在。类似于$page=$(当前目录);$。mobile.changePage($page,选项);很抱歉我不清楚。以前(在旧代码中)我发现了一种使用第一个JS文件中的方法将数据插入listview的方法(我更新了上面的代码)。但是,当我使用另一个JQM文件中的链接请求此页面时,这不起作用。这就是我尝试使用pagebeforechange事件的原因。