jQuery Mobile:页面在初次访问时没有完全加载

时间:2012-09-20 01:43:41

标签: jquery-mobile

我查看了在输入此内容之前出现的所有类似问题,但我无法找到问题的答案。

我正在使用jQuery Mobile(1.1)和jQuery(1.7.1)来开发一个小型门户。因此,我将它全部放在一个页面上,并使用data-role =“page”来处理流程转换。

流程目前是这样的:

  1. 用户访问主网址
  2. 用户点击某个操作(“执行此操作”或“执行此操作”)
  3. 当用户点击该操作时(两者都只是带有href到另一个带有data-role =“button”的文件的标签),它会将它们带到该页面。
  4. 但是,首次访问该页面时(通过手动键入URL或单击操作按钮/链接),表单为空,单击提交按钮不执行任何操作。刷新页面后尽管一切正常。

    所以,例如,有人点击了行动链接#1(“付款”):

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> 
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.css" />
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script>
    <title>Credit Card Payments</title>
    <style>
        .ui-dialog .ui-header a[data-icon=delete] { display: none; }
    </style>
    <script>
    $(document).bind("mobileinit", function(){
    });
    </script>
    </head>
    <body>
        <div data-role="dialog" id="popup">
            <div data-role="header" data-theme="b" data-content-theme="b">
                <h1>Destination</h1>
            </div>
            <div data-role="content" data-theme="b" data-content-theme="b">
                Please choose what you would like to do:
                <a href="payment.php" data-role="button">Make A Payment</a>
                <a href="create.php" data-role="button">Add Credit Card To Account</a>
            </div>
        </div>
    </body>
    </html>
    

    将它们带到“payment.php”并显示页面ID“step1”,这是一个简单的登录形式:

    <div data-role="page" id="step1">
        <div data-role="header">
            <h2>Log In</h2>
        </div>
        <form id="step1frm">
            <div data-role="fieldcontain">
                <label for="mail">Blesta e-mail: </label>
                <input type="text" name="mail" id="mail" />
            </div>
            <div data-role="fieldcontain">
                <label for="pw">Blesta password: </label>
                <input type="password" name="pw" id="pw" />
            </div>
                <input type="button" id="step1frmsub" value="Log In" />
        </form>
    </div>
    

    登录表单页面也有很多jQM的东西,但在我评论了所有代码后,它没有改变任何东西,所以这不是原因。我还通过W3.org验证了HTML,它又回来了。

    我在Chrome's Inspector的屏幕截图中可以更好地展示正在发生的事情:

    首次访问 - after clicking "make a payment"

    刷新页面后 - after refreshing the login for "make a payment"

    编辑 - 作为一个小的跟进,我注意到“data-external-page =”true“”正在加载div页面上设置,然后刷新它不再存在。根据我对我所读到的内容的理解,这是完成的,因为它基本上来自对话框,但我不确定是否有办法禁用它被设置。

    回答 - 嗯,在最初认为它不是我想要的之后,解决方法实际上就是将其添加到我的链接中:

    rel="external"
    

    所以他们看起来像这样:

    <a href="payment.php" data-role="button" rel="external">Make A Payment</a>
    

1 个答案:

答案 0 :(得分:1)

嗯,在最初认为它不是我想要的之后,这个解决方案实际上是将它添加到我的链接中:

rel="external"

所以他们看起来像这样:

<a href="payment.php" data-role="button" rel="external">Make A Payment</a>