2013-10-09 36 views
0

我正在嘗試開發一個示例筆記應用程序。該應用程序包含一個索引頁,其中有兩個使用data-role="page"選項的div元素。第一頁包括兩個按鈕。點擊任何按鈕應該導航到其他div使用頁面轉換幻燈片。頁面轉換不起作用

這是我的HTML代碼:

<!DOCTYPE HTML> 
<html> 
<head> 
<title>Dbsample</title> 

<meta charset="utf-8"> 
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1"> 

<script type="text/javascript" src="css/cordova.js"></script> 
<link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.3.2.min.css" /> 
<link rel="stylesheet" type="text/css" href="css/jquery.mobile.structure-1.3.2.min.css" /> 
<link rel="stylesheet" href="css/custom-theme.min.css" /> 
<script type="text/javascript" src="css/jquery-1.10.2.min.js"></script> 
<script type="text/javascript" src="css/jquery.mobile-1.3.2.min.js"></script> 
<style type="text/css"> 
     body { 
      /* Setting body margins to 0 to have proper positioning of #container div */ 
      margin: 0; 
     } 

      /* #container div with absolute position and 100% width and height so it takes up whole window */ 
     #container { 
      position: absolute; 
      width: 100%; 
      height: 100%; 
     } 

</style> 
<script type="text/javascript"> 
     $(document).one("mobileinit", function() { 

      // Setting #container div as a jqm pageContainer 
      $.mobile.pageContainer = $('#container'); 

      // Setting default page transition to slide 
      $.mobile.defaultPageTransition = 'slide'; 

     }); 
    </script> 
</head> 

<body> 
<div id="container"> 
<div data-role="page" id="homePage"> 
    <div data-role="header"> 
      <h1>Notes</h1> 
     </div> 
    <div data-role="content" id="mainContent"> 
     <ul data-role="listview" id="noteTitleList"> 
     </ul> 
    </div> 

    <div data-theme="a" data-role="footer" data-position="fixed" style="bottom: 0; position: absolute !important; top: auto !important; width: 100%;"> 
     <div data-role="navbar" data-iconpos="top"> 
      <ul> 
       <li> 
        <a href="#editPage" data-transition="slide" data-inline="true" data-theme="b" data-icon="plus"> 
         Add 
        </a> 
       </li> 
       <li> 
        <a href="#editPage" data-transition="slide" data-inline="true" data-theme="b" data-icon="grid"> 
         Edit 
        </a> 
       </li> 
      </ul> 
     </div> 
    </div> 
</div> 
<div data-role="page" id="editPage"> 
    <div data-role="header"> 
      <h1>Notes</h1> 
     </div> 

    <div data-role="content" id="mainContent"> 

    <div data-role="fieldcontain" data-controltype="textinput"> 
       <label for="textinput1" style="margin-top: 2%;"> 
        Title 
       </label> 
       <input name="" id="textinput1" placeholder="" value="" type="text"> 
      </div> 
     <div data-role="fieldcontain" data-controltype="textarea"> 
       <label for="textinput2" style="margin-top: 2%; height: 60px;"> 
        Details 
       </label> 
       <input name="" id="textinput2" placeholder="" value="" type="text"> 
      </div> 
      <div style="margin-left: 30%; margin-right: 30%;"> 
      <input type="submit" data-theme="a" value="Submit"> 
      </div> 
      <div data-theme="a" data-role="footer" data-position="fixed" style="bottom: 0; position: absolute !important; top: auto !important; width: 100%;"> 
      <div data-role="navbar" data-iconpos="top"> 
       <ul> 
        <li> 
         <a href="#homePage" data-transition="slide" data-inline="true" data-theme="b" data-icon="home"> 
          Home 
         </a> 
        </li> 
       </ul> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
</body> 
</html> 

但是,當我嘗試對AVD運行它,它似乎像數據轉換被簡單地忽略。 在logcat中它拋出一個錯誤:

"file:///android_asset/www/index.html: Line 15 : ReferenceError: Can't find variable: $" 

不知道原因。任何幫助?

+0

你確定你已經正確的包含了jquery嗎?打開一個瀏覽器,並確保你不會有錯誤。並確保您可以在JavaScript控制檯中運行jquery命令。 – aharris88

回答

0

mobileinit事件沒有被解僱。您需要在jquery mobile加載之前註冊該事件,以便在加載JQM後立即觸發事件。在以下腳本之後加載JQM腳本。

<script type="text/javascript"> 
     $(document).one("mobileinit", function() { 

      // Setting #container div as a jqm pageContainer 
      $.mobile.pageContainer = $('#container'); 

      // Setting default page transition to slide 
      $.mobile.defaultPageTransition = 'slide'; 

     }); 
    </script> 

<script type="text/javascript" src="css/jquery.mobile-1.3.2.min.js"></script> 
+0

Thanx看看...試了你的解決方案,但沒有爲我工作。 – UjjawalKr

-1

它看起來像

$(document).one("mobileinit", function() { 

應該是:

$(document).on("mobileinit", function() { 
+0

做了同樣的,但仍然沒有working.any其他建議,使其工作? – UjjawalKr

0

使用這一個。它應該工作。

<!DOCTYPE HTML> 
<html> 
<head> 
<title>Dbsample</title> 

<meta charset="utf-8"> 
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1"> 

    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" /> 

    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
    <script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script> 
<style type="text/css"> 
     body { 
      /* Setting body margins to 0 to have proper positioning of #container div */ 
      margin: 0; 
     } 

      /* #container div with absolute position and 100% width and height so it takes up whole window */ 
     #container { 
      position: absolute; 
      width: 100%; 
      height: 100%; 
     } 

</style> 

</head> 

<body> 
<div id="container"> 
<div data-role="page" id="homePage"> 
    <div data-role="header"> 
      <h1>Notes</h1> 
     </div> 
    <div data-role="content" id="mainContent"> 
     <ul data-role="listview" id="noteTitleList"> 
     </ul> 
    </div> 

    <div data-theme="a" data-role="footer" data-position="fixed" style="bottom: 0; position: absolute !important; top: auto !important; width: 100%;"> 
     <div data-role="navbar" data-iconpos="top"> 
      <ul> 
       <li> 
        <a href="#editPage" data-transition="slide" data-inline="true" data-theme="b" data-icon="plus"> 
         Add 
        </a> 
       </li> 
       <li> 
        <a href="#editPage" data-transition="slide" data-inline="true" data-theme="b" data-icon="grid"> 
         Edit 
        </a> 
       </li> 
      </ul> 
     </div> 
    </div> 
</div> 
<div data-role="page" id="editPage"> 
    <div data-role="header"> 
      <h1>Notes</h1> 
     </div> 

    <div data-role="content" id="mainContent"> 

    <div data-role="fieldcontain" data-controltype="textinput"> 
       <label for="textinput1" style="margin-top: 2%;"> 
        Title 
       </label> 
       <input name="" id="textinput1" placeholder="" value="" type="text"> 
      </div> 
     <div data-role="fieldcontain" data-controltype="textarea"> 
       <label for="textinput2" style="margin-top: 2%; height: 60px;"> 
        Details 
       </label> 
       <input name="" id="textinput2" placeholder="" value="" type="text"> 
      </div> 
      <div style="margin-left: 30%; margin-right: 30%;"> 
      <input type="submit" data-theme="a" value="Submit"> 
      </div> 
      <div data-theme="a" data-role="footer" data-position="fixed" style="bottom: 0; position: absolute !important; top: auto !important; width: 100%;"> 
      <div data-role="navbar" data-iconpos="top"> 
       <ul> 
        <li> 
         <a href="#homePage" data-transition="slide" data-inline="true" data-theme="b" data-icon="home"> 
          Home 
         </a> 
        </li> 
       </ul> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
</body> 
</html> 
+0

試過這個bt不能正常工作......如果它在你身邊工作......你會爲我提供一個jsfiddle鏈接。 – UjjawalKr