2012-09-11 2 views
1

jQuery Mobile을 사용하여 응용 프로그램을 만드는 경우 서버에서 데이터를로드하는 페이지를 원합니다. 다양한 이유로로드 할 때 PHP로 목록 항목을 작성합니다.PHP에서 모바일로드 마크 업은 마크 업을 향상시키지 않습니다. 두 번째 시간

처음으로 페이지를로드 할 때 모든 것이 원활하게 진행됩니다. 다시로드하면 데이터가 다시 삽입되지만 마크 업이 향상되지 않습니다.

이 EXACT 문제를 해결할 수있는 몇 가지 스레드가 있지만 허용되는 대답은 항상 .trigger ('create')를 사용합니다. 이 작업을 수행했지만 성공하지 못했습니다. .listview ('refresh'), .trigger ('updatelayout')를 사용하여 시도했는데 페이지의 클래스, 페이지 클래스 , 목록보기 div, 완료에 넣어 : 내 아약스 전화하지만 아무것도. 내가 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> 
내가로 해 봅시다 할 수있는 페이지입니다 :

<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 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') 
       } 
      }); 

    } 

이 .listview을 밝혀됩니다 ('때문에 좌절 의견에서 영감을, 그리고 내 자신의 과실을 극복개

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') 
       } 
      }); 

    } 
+1

create 호출을 트리거하는 대신 .listview ("refresh"); – JonWells

+0

.trigger ('updatelayout')와 함께 이미 시도한 질문에서 언급했듯이 페이지, 페이지 클래스, listview div에서 이러한 이벤트를 트리거하려고 시도했습니다. 내 아약스 전화. 내가 아무 것도 할인하지 않을 것이기 때문에 나는 그것을 다시 시도했고 그것은 나를 위해 효과적이지 않다 ... 어떤 jQuery 객체에서 그 방법을 사용하겠습니까? –

+1

죄송합니다. 내가 작성한 코드에서 페이지를 변경하기 전에 목록을 작성하고 있습니다. 어쨌든 새로 고침이 필요합니다. 콘솔 오류가 발생합니까? – JonWells

답변

0

좋아 덕분에 나는 해결책을 찾았습니다 새로 고침 ') 실제로 작동하지 않았다. 그리고 실제로는 CrimsonChin의 제안에 따라 Javascript 콘솔에 오류가 발생했지만 실제 listview 요소가 아닌 페이지에서이를 실행했다. 페이지 후 새로 고침을 전화, 분명, 나를 이끌어

Uncaught cannot call methods on listview prior to initialization; attempted to call method 'refresh'

로 변경했다 : I리스트 뷰 요소를 실행했을 때 나는이 오류가 발생했습니다.

내 관심사는 다음과 같습니다. 언젠가는 페이지에 할 일이 많으면 변경되기 전에 분할되지 않은 마크 업 플래시가 화면에 표시됩니다. 가능하지 않습니다. 지금은 일어나지 않지만 당분간은 아주 기본적인 페이지를 실행하고 있습니다.

도움 주셔서 감사합니다.

+0

고개를 끄덕입니다. 목록보기가 초기화 된 후에는 목록 화되지 않은 요소가 목록보기가 새로 고쳐질 때까지 숨겨져 있음을 확신합니다. – JonWells

관련 문제