jQuery Mobile从php加载标记-不会第二次增强标记

jQuery Mobile从php加载标记-不会第二次增强标记,jquery,jquery-mobile,Jquery,Jquery Mobile,使用jquerymobile创建应用程序时,我需要一个页面来从服务器加载数据,我在基于各种原因加载时正在用PHP构建列表项 因此,当我第一次加载一个页面时,一切都很顺利,如果我再次加载它,数据会重新插入,但标记不会增强 有几个线程可以解决这个问题,但是公认的答案是use.trigger('create')。我已经这样做了,但没有成功,我尝试使用.listview('refresh')、.trigger('updatelayout'),我尝试在页面上触发这些事件,页面的类,listview div

使用jquerymobile创建应用程序时,我需要一个页面来从服务器加载数据,我在基于各种原因加载时正在用PHP构建列表项

因此,当我第一次加载一个页面时,一切都很顺利,如果我再次加载它,数据会重新插入,但标记不会增强

有几个线程可以解决这个问题,但是公认的答案是use.trigger('create')。我已经这样做了,但没有成功,我尝试使用.listview('refresh')、.trigger('updatelayout'),我尝试在页面上触发这些事件,页面的类,listview div,将其放入ajax调用的完整:中,但什么都没有。所以我求助于问你们社区:

我正在使用jQM 1.1.1:如果您需要更多信息,我是否遗漏了什么?我很乐意提供:

这是我的头版

<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刷新之前,未设置样式的元素将被隐藏。