2014-02-21 50 views
0

我正在使用一個函數來打開面板。但是,我發現這與#index頁面特別相關。有沒有辦法設置它,以便它鏈接到我的網站中的所有頁面。在閱讀各種帖子後,我嘗試過用幾種不同的方式添加data-role =頁面,但無濟於事。jquery mobile - 每頁加載功能

/*Open panel on page load */ 
$(document).on('pageshow', '#index', function(){  
    $("#menupanel").panel("open"); 
}) 

試圖

$(document).delegate('[data-role="page"]', 'pageshow', function() {... 

我想我也會有同樣的問題,因爲你是指定它已經從http://demos.jquerymobile.com/1.4.1/panel-swipe-open/#&ui-state=dialog

$(document).on("pagecreate", "#index", function() { 
    $(document).on("swipeleft swiperight", "#index", function(e) { 
     // We check if there is no open panel on the page because otherwise 
     // a swipe to close the left panel would also open the right panel (and v.v.). 
     // We do this by checking the data that the framework stores on the page element (panel: open). 
     if ($(".ui-page-active").jqmData("panel") !== "open") { 
      if (e.type === "swipeleft") { 
       $("#right-panel").panel("open"); 
      } else if (e.type === "swiperight") { 
       $("#left-panel").panel("open"); 
      } 
     } 
    }); 
}); 
+0

你想在所有頁面上運行相同的功能? – Omar

+0

這篇文章看起來有點不熟悉嗎?@Omar? ;-)的 –

+1

可能重複的[JQM面板限制到只有1頁的實例](http://stackoverflow.com/questions/22634955/restrict-jqm-panel-to-only-1-instance-on-page) –

回答

0

它綁定到索引頁複製代碼。只需將其刪除並綁定到「全局」頁面顯示。現在,每當頁面顯示事件在文檔中的任何地方觸發,您的面板就會打開。

/*Open panel on page show*/ 
$(document).on('pageshow',function(){  
    $("#menupanel").panel("open"); 
}); 

此代碼:

$(document).on("pagecreate", "#index", ... 

...綁定到主索引頁面的創建活動,pageshow之前它將觸發,事實上,如果JQM前觸發的初始化頁面。這個例子是添加滑動功能來打開面板。

你想要那個嗎?

而且,只是一個供參考.delegate()jQuery中已被替換。對():

在jQuery 1.7,.delegate()已經被。對()方法取代。然而,對於較早的版本,它仍然是使用事件委派的最有效手段。

+0

謝謝。我知道這是因爲#index,只是不知道要替換它。顯然沒有。這很有效,謝謝。儘管如此,我仍然需要更多地處理Ajax,因爲這對我來說更有意義。 :) – devsie

+0

感謝有關.delegate()的信息 - 這正是我在嘗試Google解決方案時發現的。我會無視它的。 – devsie

+0

很高興幫助! :D – Red2678