jQuery Mobile从php加载标记-不会第二次增强标记
使用jquerymobile创建应用程序时,我需要一个页面来从服务器加载数据,我在基于各种原因加载时正在用PHP构建列表项 因此,当我第一次加载一个页面时,一切都很顺利,如果我再次加载它,数据会重新插入,但标记不会增强 有几个线程可以解决这个问题,但是公认的答案是use.trigger('create')。我已经这样做了,但没有成功,我尝试使用.listview('refresh')、.trigger('updatelayout'),我尝试在页面上触发这些事件,页面的类,listview div,将其放入ajax调用的完整:中,但什么都没有。所以我求助于问你们社区: 我正在使用jQM 1.1.1:如果您需要更多信息,我是否遗漏了什么?我很乐意提供: 这是我的头版jQuery Mobile从php加载标记-不会第二次增强标记,jquery,jquery-mobile,Jquery,Jquery Mobile,使用jquerymobile创建应用程序时,我需要一个页面来从服务器加载数据,我在基于各种原因加载时正在用PHP构建列表项 因此,当我第一次加载一个页面时,一切都很顺利,如果我再次加载它,数据会重新插入,但标记不会增强 有几个线程可以解决这个问题,但是公认的答案是use.trigger('create')。我已经这样做了,但没有成功,我尝试使用.listview('refresh')、.trigger('updatelayout'),我尝试在页面上触发这些事件,页面的类,listview div
<div data-role="page" id="frontPage">
<div data-role="header" data-theme="e" data-id="commonHead" data-position="fixed">
<a href="index.html" data-role="button" data-icon="home" data-iconpos="notext"></a>
<h1>
myApp
</h1>
</div>
<div data-role="content" class="content">
<ul data-role="listview">
<li><a href="#" onClick="viewfList()">List</a></li>
</ul>
</div>
</div>
myApp
这是我导航到的页面:
<div data-role="page" id="fView">
<div class="commonHeader"></div>
<div data-role="content">
<ul data-role="listview" id="fList">
</ul>
</div>
</div>
下面是我用来调用页面的viewfList函数
function viewFeatList(){
jQuery.ajax({ //getting my new <li>
url: 'http://sources.mysource.com/get_list.php',
type: 'POST',
//data: myData,
dataType: 'jsonp',
jsonp: 'jsoncallback',
success: function(data, textStatus, jqXHR){
$('#fList').empty(); //emptying the listview
for (i=0;i<data.f.length;i++){
$('#fList').append(data.f[i]); //appending the <li>
}
$('#fList').trigger('create'); //this version's attempt to re-enhance markup
$.mobile.changePage('#fView'); //navigate to page
},
error: function(jqXHR, textStatus, errorThrown){
myAlert('There was an error submitting your request')
}
});
}
函数viewFeatList(){
ajax({//get my new
网址:'http://sources.mysource.com/get_list.php',
键入:“POST”,
//数据:myData,
数据类型:“jsonp”,
jsonp:'jsoncallback',
成功:函数(数据、文本状态、jqXHR){
$('#fList').empty();//清空listview
对于(i=0;i好的,多亏了评论中的灵感,克服了我自己因沮丧而疏忽的问题,我找到了一个解决方案:
这是我的新功能
function viewfList(){
jQuery.ajax({
url: 'http://sources.mysource.com/get_list.php',
type: 'POST',
//data: myData,
dataType: 'jsonp',
jsonp: 'jsoncallback',
success: function(data, textStatus, jqXHR){
$('#fList').empty();;
for (i=0;i<data.f.length;i++){
$('#fList').append(data.f[i]);
}
$.mobile.changePage('#fView');
$('#fList').listview('refresh');
},
error: function(jqXHR, textStatus, errorThrown){
myAlert('There was an error submitting your request')
}
});
}
函数viewfList(){
jQuery.ajax({
网址:'http://sources.mysource.com/get_list.php',
键入:“POST”,
//数据:myData,
数据类型:“jsonp”,
jsonp:'jsoncallback',
成功:函数(数据、文本状态、jqXHR){
$('#fList').empty();;
对于(i=0;i而不是触发create call.listview(“刷新”);如问题中所述,我已经尝试了与.trigger('updatelayout')一起使用,我尝试在页面上触发这些事件,页面的类,listview div,将其放入我的ajax调用的完整:中。因为我不会打折任何东西,所以我只是再次尝试,但它对我不起作用…您会在哪个jQuery对象上使用该方法?抱歉,错过了。根据我从您的代码中收集的信息,您正在构建在更改页面之前刷新列表。因此,无论如何,刷新都是必要的。是否有任何控制台错误?没有控制台错误,是的,我同意刷新是必要的,但是由于我无法识别的原因,我似乎无法触发页面刷新…我您的意见我是否在正确的元素上触发事件?您是否尝试调用.page()在它显示之前的页面上?这应该初始化整个页面谢谢你的点头。我很确定一旦listview被初始化,在listview刷新之前,未设置样式的元素将被隐藏。