JQM - data-dom-cache= 页面上的"true"不加载 js 文件



我从JQM页面得到一个奇怪的行为。

我正在使用phonegap-android 4.4.2与eclipse IDE。

页面代码:

    <html>
        <head></head>
        <body>
            <div data-role="page" id="folfirstForm" data-dom-cache="true">
            <link rel="stylesheet"  href="../../css/follow_up.css">
            <script src="../../js/addProdLine.js"></script>
            <script type="text/javascript">
                $(document).off("pageshow", "#folfirstForm").on("pageshow", "#folfirstForm", function() {
                    alert("First form loaded!"); 
                    AddElement();
                });
            </script>
            ----Some body----
        </body>
</div>
  </div>
    </html>

您可以在代码中看到,我已经按照我的要求放置了data-dom-cache="true"。我还包括名为addProdLine.js的js文件,其中包含我需要的功能,(例如,AddElement()来自包含文件它自己)。

现在,当我第一次访问这个页面时,所有的功能都工作得很好。在同一页面上的第二次访问,我得到的形式是预期的前状态,因为我已经把data-dom-cache="true"。但可能是由于data-dom-cache="true"我的外部js文件没有被加载在同一页面上的第二次访问。我希望每次访问时,我的js文件都能运行

Jquery mobile只在加载整个文档时加载一次标签。文档加载后,如果您将点击其他链接,那么只有内容部分data-role=page将通过ajax随着数据转换效果刷新。因此,要么将所有js脚本添加到一个文件中,并将其添加到头部标签中,要么使用以下选项停止通过ajax加载其他页面:

<a href="#" data-ajax=”false”>Without Ajax</a>

但是如果你将禁用内容加载使用ajax然后链接将工作,因为它在正常的网页工作,也过渡效果将不存在。

编辑:

另一种方法是:你可以在JS文件的路径中附加一些随机值。

<script src="../../js/addProdLine.js?Q=<?php echo time(); ?>"></script>

相关内容

最新更新