2012-10-12 29 views
2

我的應用程序有一個按鈕(在app.html上),導致帶有導航欄(app2.html)的新頁面。導航有一個內部鏈接(工具欄2),應該顯示內部div「page2」。jQuery Mobile:改變後內容加載不正確

使用changePage()從按鈕進來時,點擊導航時無法顯示內容。看起來reloadPage不起作用。

app.html看起來是這樣的:

<body> 
    <!-- Home --> 
    <div data-role="page" id="page3"> 
     <div data-role="content"> 
      <a id="asdf" data-role="button" name="asdf"> 
       Button 
      </a> 
     </div> 
    </div> 
    <script> 
     $('#asdf').click(function(){ 

      $.mobile.changePage('app2.html', {transition: "slidedown", reloadPage: true, changeHash: true }); 

      }); 

    </script> 
</body> 

這是我app2.html:

<body> 
    <!-- Home --> 
    <div data-role="page" id="page1"> 
     <div data-role="content"> 
      <div id="navigation" data-role="navbar" data-iconpos="right"> 
       <ul> 
        <li> 
         <a href="app.html" data-theme="" data-icon=""> 
          Toolbar1 
         </a> 
        </li> 
        <li> 
         <a href="#page2" data-theme="" data-icon="check"> 
          toolbar 2 
         </a> 
        </li> 
        <li> 
         <a href="app.html" data-theme="" data-icon=""> 
          Toolbar 3 
         </a> 
        </li> 
       </ul> 
      </div> 
     </div> 
    </div> 
    <div data-role="page" id="page2"> 
     <div data-role="content"> 
      <div data-role="header"> 
       <h3>asdfasd</h3> 
      </div> 
     </div> 
    </div> 
</body> 

在哪裏的問題?我在jQuery 1.7.1中使用jQuerymobile 1.1.1。

以下是文件: app.html app2.html

回答

1

你不能有第二網頁在兩次jQuery Mobile的頁面。當你點擊app.html中的鏈接時,它會對app2.html執行ajax請求以獲取data-role =「page」,並且它只在html文件中有效。您應該詳細閱讀single page templatemulti-page template之間的區別。

你可以在文檔中找到更多,請查找"Linking within a multi-page document"。您需要將所有頁面放在一個HTML文件中並鏈接到該ID,或將所有頁面放在單獨的HTML文件中並鏈接到該文件。

+0

那麼我該怎麼做才能在點擊導航欄時顯示正確的div? – cr8z3r

+0

@ cr8z3r要麼讓所有頁面成爲他們自己的HTML文檔,要麼將所有頁面放在一個HTML文檔中,既要做一個插件(不知道它是否存在),要麼編寫可以獲取所有數據的自定義代碼-role =「page」'元素來自外部文檔而不僅僅是第一個。 – Jasper

+0

我檢查了一個多頁面模板的例子,我正在那樣做。還有2頁。 – cr8z3r