就像在Javascript中一样,没有加载到jquery mobile中的dom中



我有一个页面1.html里面有一个链接,如下所示:

<a href="page2.html">PAGE2</a>

page2.html的一部分是这样的:

<html>
<head>
</head>
<body>
<div data-role="page">
</div>
<script src="file1.js"></script>
<script src="file.js"></script>
</body>
</html>

还有这个:

<html>
<head>
</head>
<body>
<div data-role="page">
</div>
<div data-role="page">
<script src="file1.js"></script>
<script src="file.js"></script>
</div>
</body>
</html>

这两个js文件在page2.html上实现了一些功能,但是当通过page1.html导航到page2.html时,这两个文件将不起作用,但是当完成data-ajax="false"时它可以工作。怎么了。scripts应该放在哪里?我需要默认ajax才能更平滑地过渡。

更新

根据您更新的问题,您不能单页模型多页模型混合使用。加载 page2 时.html加载第一个data-role="page,并且只加载第一个。其他任何事情都被忽略了。

例:

index.html (第一页加载) - 无论启用还是禁用 Ajax,<html>中的所有标记都将加载到 DOM 中。

<html>
  <head>
    <!-- JS, CSS, etc.. -->
  </head>
  <body>
    <!-- pages -->
  </body>
</html>

page2.html - 启用 Ajax 时,除了 FIRST data-role="page" 及其内容外,所有标记都将被忽略。

<!-- libraries in head are neglected -->
<head>
  <!-- JS, CSS, etc.. -->
</head>
<body>
<!-- ONLY first page is loaded -->
  <div data-role="page">
   <!-- JS -->
  </div>
<!-- next pages are neglected -->
  <div data-role="page">
  </div>
</body>

当使用单页模型启用 Ajax 时,您必须将外部页面的 JS 库/代码放在 <div data-role="page"> 中。

<div data-role="page">
  <script src="file1.js"></script>
  <script src="file.js"></script>
</div>

jQuery Mobile通过Ajax加载外部页面,它只加载<body的第一个<div data-role="page">,并忽略侧面页面div之外的任何其他标签。

最新更新