JQuery Mobile - 关闭对话框后加载错误的页面,并且Javascript并不总是有效

JQuery Mobile - Loads wrong page after closing dialog and Javascript not always working

本文关键字:Javascript 并且 有效 Mobile 对话框 错误 加载 JQuery      更新时间:2023-09-26

我有一个项目,有两个html页面(bmi.html和7min.html(和一些javascript...我使用页脚在页面之间导航。

  • 第一个问题:第一次运行 7 分钟.html,导航到 BMI.html使用页脚和 BMI 中的 JavaScript 不起作用!
  • 第二个问题:第一次运行BMI.html,导航到7分钟.html然后再次回到BMI。Javascript工作正常,但关闭后弹出对话框返回到7分钟页面。

下面是我的代码。

7分钟:http://jsfiddle.net/Rwf5G/BMI: http://jsfiddle.net/snKyK/

<html>
<head>
    <meta charset="utf-8">
    <title>Body Trainer</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.1/jquery.mobile-1.2.1.min.css" />
    <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
    <script src="http://jquerymobile.com/demos/1.2.1/docs/_assets/js/jqm-docs.js"></script>
    <script src="http://jquerymobile.com/demos/1.2.1/js/jquery.mobile-1.2.1.js"></script>
</head>
<body>
    <div data-role="page" id="7min-page" class="type-interior" >
        <div data-role="header" data-position="fixed" data-id="appHeader" >
            <h1>Workout</h1>
        </div><!-- /header -->
        <div data-role="content" >
            <h4>Brief</h4>
            <p>
                Some bla bla...
            </p>

        </div>
        <div data-role="footer" data-id="appFooter" data-position="fixed">
            <div data-role="navbar">
                <ul>
                    <li>
                        <a href="bmi.html" data-prefetch="true">BMI</a>
                    </li>
                    <li>
                        <a href="7min.html" data-prefetch="true" class="ui-btn-active ui-state-persist">7min</a>
                    </li>
                </ul>
            </div><!-- /navbar -->
        </div><!-- /footer -->
    </div>
</body>

(很抱歉我使用 jsfiddle,我在这里添加代码时遇到了一些问题。

  1. 第一期:

    jQuery Mobile使用Ajax导航系统来加载页面和更改视图/页面。当您开始使用 bmi.html 时,将加载所有 HTML 标记。当你从bmi.html导航到7min.html时,jQuery Mobile只加载<div data-role="page"></div>和里面的内容。它忽略了div 之外data-role=page其他 HTML 标记。

    • 解决方案:将JS代码放在<div data-role="page"></div>中。
    • 选项:要在不使用 AJAX 的情况下导航,请将rel="external"data-ajax="false"添加到定位标记。这样做,将正常加载页面,但是,您将失去页面过渡效果。
  2. 第二个问题:

    将此属性data-history="false"添加到div <div data-role="popup">

相关文章: