2012-02-08 37 views
1

我正在使用jquery.mobile-1.0.1。將'選項'覆蓋傳遞給jquery函數

我試圖做一個UI的列表視圖當前的「標籤」上點擊時重新加載頁面:

enter image description here

我已經設法追查功能和更改源代碼在jquery.mobile-1.0.1.js來解決這個問題,但我想知道是否有辦法做到這一點沒有修改jquery移動源

有問題的功能是:

$.mobile.loadPage = function(url, options) {  
settings = $.extend({}, $.mobile.loadPage.defaults, options), 
//rest omitted 

我可以看到它與定義options

你需要傳遞reloadPage用戶相結合的默認設置(mobile.loadPage.defaults):通過選擇真正作爲默認假。

如果我按照調用堆棧向上它在邏輯上(用於傳遞參數的目的)停止在

$.mobile.changePage(href, { transition: transition, reverse: reverse, role: role }); 

所以我在reloadPage通過:真在這裏,但將被修改的jQuery的源代碼。我試圖避免的mobile-1.0.1.js。

我是js和jquery的新手,所以不確定是否有一些標準的方式來傳遞這些選項,因爲它看起來就像它的設計方式,或者它被設計成jquery.mobile內部使用的方式,改變來源是唯一的方法。

我想知道是否有一些全局的方式來設置參數/選項,可用於此功能;這似乎很奇怪的jQuery手機的人似乎代碼爲reloadPage,但不公開被調用者。

+0

可能是更具體的瞭解,你想做些什麼?是你的問題試圖用'選項'覆蓋'默認值',並且不會改變?是這個嗎 ? – BernardoFire 2012-02-08 05:36:03

+0

我想通過選項傳遞'reloadPage:true',因爲默認值爲false。 – wal 2012-02-08 05:41:38

回答

0

我發現是添加最簡單的方法:

<script type="text/javascript"> 

    $.mobile.loadPage.defaults.reloadPage = true; 

</script> 
0

我想你可能會被reloadPage做的事迷惑,當你調用$ .mobile.changePage時你可以通過reloadPage傳遞,但是這隻會重載當前頁面的緩存副本。

如果你正在尋找的是你需要告訴JQM不通過AJAX加載通過使用data-ajax="false"或相對鏈接=「外部」(域鏈接外)

您是否嘗試刷新通過編輯jQM文檔頁面學習jQM?有問題的鏈接是: <a href="docs/about/intro.html" class="ui-link-inherit">Intro to jQuery Mobile</a>如果您剛添加data-ajax =「false」,它會在新頁面中加載intro.html(完全刷新)。

如果你真的想在這個實例中傳遞reloadPage:true,你需要將href改爲#,然後綁定一個調用$ .mobile.changePage和reloadPage的處理程序:true作爲一個選項傳入,或者只是使用onclick屬性(不漂亮)

+0

我只使用文檔頁面作爲示例。在實際的應用程序中,頁面不被緩存,因爲url有一個查詢字符串,根據chrome調試器在切換標籤頁時不會被緩存(不像我看到的docs頁面在切換'tabs'時被緩存)。你能否詳細說明或提供一個代碼片段來「將href更改爲#然後綁定處理程序」? – wal 2012-02-08 22:16:27