2

我正在开发一个PhoneGap应用程序并且正在使用jQuery Mobile。上次我在做这个项目时,它看起来很棒,但现在 jQuery Mobile 停止了工作。这是怎么回事?

这是我的代码:

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css" />
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.min.js"></script>
        <script type="text/javascript" src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js"></script>
    </head>

    <body>
        <div id="page" data-role="page" data-theme="b">
            <div data-role="content">
            <h2>Login To Carpool Mobile</h2>
            <p align="right"><a href="registration.html" id="showregistration">Don't have an account? &rarr;</a></p>
                <form method="post" id="loginForm">

                    <label for="password">Email:</label>
                    <input class="required" type="text" name="username" id="username" placeholder="username@target.com">

                    <label for="password">Password:</label>
                    <input class="required" type="password" name="password" id="password" placeholder="password">

                    <input type="button" value="Login" id="submitButton" onClick="handleLogin()">
                </form>
            </div>
        </div>

        <script>
        $(document).ready(function() {
            checkPreAuth();
        });
        </script>
    </body>
</html>
4

4 回答 4

2

PhoneGap 要求您在根目录的“config.xml”文件中手动设置/允许应用程序的各个方面。

我相信您正在寻找的解决方案是这一行:

<access origin="http://code.jquery.com" subdomains="true" />

您允许访问“ http://code.jquery.com ”的外部资源并允许其所有子域。这意味着您刚刚解锁了 jquery mobile,这就是您想要的,如您的脚本标签所示:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js"></script>

这些“src”属性现在被视为您刚刚成功允许的http://code.jquery.com的“子域”!

于 2013-06-27T20:58:35.460 回答
1

您不能在 jQuery Mobile 中使用以下一项

$(document).ready(function() {
    checkPreAuth();
});

您需要使用自定义的 jQuery Mobile 特定事件。您可能需要更改您的代码,如下所示。

$('#page').live('pageshow', function(event){
    checkPreAuth();             
});

检查文档以获取更多相关事件

从您的代码中,我可以注意到您正在使用非常古老的 jQuery 和 jQuery Mobile 库。我建议您升级到最新的,这将使您能够使用比当前版本更多的功能。

这是来自 jsfiddle的最新框架的示例。

于 2013-03-20T03:54:46.077 回答
0

checkPreAuth();除了未定义的代码之外,我对您的代码没有任何问题。您还应该尝试更新您的查询和 jquery mobile 版本。我建议您下载并包含应该在您的www项目目录中包含 JQuery 移动和 Jquery 文件(脚本文件)

于 2014-12-10T15:12:36.800 回答
-1

删除$(document).ready(function()并保留checkPreAuth();在 PhoneGap 的 deviceready 事件中。

于 2013-03-19T21:11:01.250 回答