我有一个页面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之外的任何其他标签。