2011-11-15 2 views
6

jqm 프레임 워크를 사용하여 webapp를 구축 중이며 jQuery 위젯 인 k3dcarousel을 포함 할 때 pageshow 함수를 사용하려고 시도했습니다. 문제의 페이지에서, 나는 data-role="page" 사업부 아래 내 스크립트,Jquery Mobile pageshow 함수

$("#page-about").live(
    "pageshow", 
    function (event) { 
     $('#k3dCarousel_portrait').k3dCarousel(); 
    } 
); 

내가 내가 내가 이것을 사용하고 생각하게 것이다,로드 JS 기능을 얻기 위해 두 번 내 링크를 클릭해야 할 것 같다 있습니다 기능이 잘못되었습니다. 또한 pageshow 함수 아래에 $("#page-about").die(); 함수를 사용하지 않으면 뒤로 클릭 한 다음 링크를 다시 클릭하면 스크립트가 여러 번로드됩니다.

로직을 사용하고 있습니까? pageshow 로직이 잘못 되었나요? 제가 시도하려는 것을 성취 할 수있는 더 좋은 방법이 있습니까? AJAX이 페이지를 모바일 프레임 워크에 넣으십시오.

나는이 질문이 다소 구체적인 질문이라고 생각하지만,이 질문에 대한 답변은 어떤 도구에도있을 수 있기를 바랍니다.

도움이된다면 도움이된다면 더 많은 코드를 붙여 넣을 수 있습니다.

감사합니다.

답변

7

pageshow 이벤트에 바인딩되므로 익명 기능은 페이지를 볼 때마다 실행됩니다. 당신은 단지 다음 페이지의 첫 번째보기에 코드를 호출 중 하나 pagecreate/pageinit 이벤트에 바인딩하거나 pageshow 코드에서 k3dCarousel의 존재를 확인하려는 경우 : 여기

$("#page-about").live(
    "pageshow", 
    function (event) { 
     //check for the existence of HTML within the container element 
     if ($('#k3dCarousel_portrait').html().length == 0) { 
      $('#k3dCarousel_portrait').k3dCarousel(); 
     } 
    } 
); 

모든 jQuery를에 대한 설명입니다 모바일 전용 이벤트 : http://jquerymobile.com/demos/1.0rc3/docs/api/events.html

+0

응답 해 주셔서 감사합니다. pagecreate/init보다는 pageshow를 사용하는 이유는 이러한 함수를 사용하여 js를 실행하지 못하는 것입니다. 나는 rc2에있을거야 그래서 어쩌면 내가 업데이 트해야 ... –

관련 문제