2015-11-21 28 views
0

我有一個外部工具欄(標題)的問題。根據jQuery Mobile文檔,如果任何頁面具有內部標題,它應該會自動隱藏,但由於某些原因,它不會。外部工具欄不能正確隱藏(jQuery Mobile)

我在jQuery Mobile論壇上找到了部分解決方案。我表示如果內部頭在裏面,如果是存在的頁面前檢查,隱藏外部之一:

$(document).on("pagecontainerbeforeshow",function(){ 
    var activePage = $('body').pagecontainer('getActivePage'); 
    if(activePage.find("div[data-role=header]").length > 0){ 
     $("#external-header").hide(); 
    } else { 
     $("#external-header").show(); 
    } 
}); 

以下是演示: https://jsfiddle.net/io_phoenix/a9wt3hbf/7/

,我的問題是外部頭是第一次加載文件時不會隱藏在頁面#0上,它只有在稍後使用內部鏈接導航到此頁時纔會執行。

我不明白爲什麼「前戲」是不是在這種情況下工作,我越來越絕望試圖使它工作:(

任何幫助或提示將不勝感激!

回答

0

就拿pagecontainerbeforeshow事件處理程序出了jQuery就緒功能的,你的身體結束標記之前放置它。在準備功能配售可能允許添加的處理程序之前JQM以增強pagezero。

如果你看一下API DOC對於pagebeforeshow,你可以使用第二個參數,以獲得頁面你導航到(ui.toPage):

$(document).on("pagecontainerbeforeshow", function(event, ui){ 
    var activePage = ui.toPage; 
    if(activePage.find("div[data-role=header]").length > 0) { 
     $("#external-header").hide(); 
    } else { 
     $("#external-header").show(); 
    } 
}); 

更新FIDDLE

+0

感謝您的幫助!它在頁面2上給出了奇怪的跳躍效果,但實際上在我的項目中看起來很完美。 – Olga