2012-05-08 2 views
1

jQuery Mobile에서 내 질문은 실제로 페이지를로드하기 전에 페이지가 완전히로드 될 때까지 기다리는 방법 (모든 이미지, 텍스트)입니다. 사용자가 링크를 클릭하면 페이지가로드되는 동안로드 그래픽이 화면에 유지되고 완전히로드되면로드 그래픽이 숨겨지고 페이지가로드됩니다.jQuery Mobile 전체 페이지가 완료 될 때까지 기다리는 중로드

이것이 가능합니까?

+0

위 링크의 클릭 이벤트를 듣고 페이지를 수동으로 가져 와서 추가하고 이미지/스크립트/CSS에 대해 구문 분석 한 다음 수동으로로드를 완료해야합니다. –

답변

2
$(document).on('click', '.my-custom-links', function() { 
    //get the requested page 
    $.ajax({ 
     url  : this.href, 
     success : function (page) { 
      //get only the first data-role="page" element 
      var $page = $(page).find('[data-role="page"]').first(); 

      //now bind an event handler to all the elements that will need to load 
      var $assets  = $page.find('img, script, link'), 
       assets_loaded = 0; 

      //make sure to bind to the load event before adding the element to the DOM 
      $assets.on('load', function() { 
       assets_loaded++; 
       if (assets_loaded == $assets.length) { 
        //all the assets have loaded, so navigate to the new page 
        $.mobile.changePage($page); 
       } 
      }); 

      //add new page to the DOM 
      $.mobile.pageContainer.append($page) 
     }, 
     error : function (jqXHR, textStatus, errorThrown) { /*Don't forget to handle errors*/ } 
    }); 
    return false; 
}); 

첫 번째 균열이 있습니다. 기본적인 생각은 케빈 B.가 말한 것과 너무 멀지 않다. 특정 링크에서 하이 잭을 클릭하고 링크 대상 페이지를 잡고 DOM에 추가 한 다음 에셋이로드 된 후에 만 ​​표시합니다.

관련 문제