2015-05-05 33 views
0

我正在開發我的第一個混合應用程序,並且我使用jquerymobile 1.4。jquerymobile pagecontainerbeforeshow只在刷新頁面時運行

該文檔建議使用方法pagecontainer。 那麼,我需要動態填充一個選擇惠特xml文件的某些值,在顯示頁面之前。 如果調試應用程序,這僅在頁面充電時運行,而不是在打開時運行。 (Chrome瀏覽器)。 我在設備上測試過,並沒有工作。 我閱讀了我在論壇上找到的所有內容,並嘗試了多種方法,但都沒有成功。

這是我的代碼:

$(document).on('pagecontainerbeforeshow', function(event, ui){ 
      if(ui.toPage.is('#buscar')){ 
        $.get("auxfiles/regiones.xml", function (xml) { 
         $(xml).find("españa").each(function (idx ,v) {       
         $(v).find("item").each(function(i , vi) { 
         if ($(vi).text() === "Todas"){ 
         $("#select-region").append('<option value = "' + idx + '" selected> ' + $(vi).text() + '</option>'); 
         $('#select-region').selectmenu('refresh'); 
        }else{ 
         $("#select-region").append('<option value="' + idx + '"> ' + $(vi).text() + '</option>'); 
        } 
        });               
        }); 
       }); 
      }; 

     });  

在此先感謝。

編輯:我發現另一個問題! 對於查看,請轉到: Pagina de prueba 當頁面加載時,它確定,但是,如果您單擊「藍色房車」,打開頁面「buscar.html」和頁腳圖像非常大,並且選擇不填充。 如果點擊「刷新」,一切正常!

回答

1

當jQuery Mobile加載buscar.html時,它實際上只是獲取第一個data-role =「page」div的內容並將其插入當前頁面。這是默認的AJAX導航:

http://demos.jquerymobile.com/1.4.5/navigation-linking-pages/

所以在buscar.html的腳本不運行,並在導航欄的形象是很大的,因爲你的index.css仍網格內改變img標籤。如果你想保留AJAX導航,以便獲得更好的頁面轉換,然後將腳本移動到data-role =「page」DIV中,甚至移動到索引頁面中;並讓你更具體的img尺寸的CSS。

另一種選擇是通過向鏈接添加data-ajax =「false」來阻止AJAX導航。

+0

謝謝!這行得通。但只有當我把腳本放入index.html中,而不是放在第二頁的div中。我認爲整個css應該在index.html文件中,並且位於index.html頭部的所有jQuery代碼中。 –

+0

@Javierdc,這將工作。 – ezanker