2011-11-15 91 views
6

我正在使用jqm框架構建webapp,並且在包含jQuery小部件k3dcarousel時,我一直試圖使用pageshow函數。對有問題的網頁,我有我的腳本data-role="page" DIV下,jquery移動頁面顯示功能

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

看來,我需要我的鏈接上點擊兩次拿到JS函數加載,這讓我覺得我用這功能錯誤。另外,如果我不使用pageshow函數下面的函數,則腳本將多次加載,如果我點擊並再次單擊該鏈接。

我使用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

感謝您的回覆,您的代碼幫助我一路走來。我使用pageshow而不是pagecreate/init的原因是,我似乎無法讓任何js使用這些函數來觸發。我在rc2上,所以也許我需要更新... –