页面转换无效

时间:2013-10-09 11:47:02

标签: android css jquery-mobile cordova

我正在尝试开发一个示例笔记应用程序。该应用程序包括一个索引页面,其中包含两个使用div选项的data-role="page"个元素。第一页包含两个按钮。点击任何按钮都应导航到其他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 {
                margin: 0; /* Setting body margins to 0 to have proper positioning of #container div */
            }

            /* #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: $"

不知道原因。有什么帮助吗?

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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>

答案 2 :(得分:-1)

看起来像是

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

应该是:

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