我是靠谱客的博主 忐忑书包,最近开发中收集的这篇文章主要介绍jquery mobile ajax页面跳转出现(error load page的错误)及js与css失效的说明和处理,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
简要说明
jqm的ajax页面跳转,实际上是通过一个ajax请求,将目标页面的 <div data-role="page" > </div>以内的dom结构复制过来
假如有a.html,b.html二个页面,a的源页面,b是目标页面
1.可以知道a页面必然加载好jquery mobile的 js和css资源,如下所示
a.html
<head>
<meta >
<link rel="stylesheet" href="jqm.1.4.2/jquery.mobile-1.4.2.min.css" />
<script type="text/javascript" src="jqm.1.4.2/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="jqm.1.4.2/jquery.mobile-1.4.2.min.js"></script>
...
</head>
<body>
...
</body>
这个是a页面的.
2.如果b.html做为目标页面,则不需要加载jquery mobile的js和css资源,跳转并没有实际发生,还是在a.html,只不过把b.html的dom复制到了a.html,因此b.html的结构应该是这样的
b.html
<head>
<meta>
...不需要jquery mobile的库
</head>
<body>
<!--b.html的dom-->
</body>
3.前面我们知道它只会加载b.html的 <div data-role="page"></div>以内的dom,因此,b.html的结构必然是这样,不然会出现 error load page的错误
b.html
<head>
<meta >
...不需要jquery mobile的库
</head>
<body>
<div data-role="page">
<!--b.html的dom,这里放置要加载的内容-->
</div>
</body>
4.本以为做好以上几点就可以了,经过测试,发现b.html页面在加载过去后(按以上做法,可以加载),但又发现b.html内自定义的css,加写的js脚本,全部通通无用,经过一番折腾,终于知道为什么了.可想而知,因为只会加载 <div data-role="page"></div>以内的dom,
因此,我们要把自定义的css,加写的js脚本,也要放在这里边.而且要放在<div data-role="content" ></div>区域内,放在<div data-role="header" ></div>及<div data-role="footer" ></div>都不行,结果如下
b.html
<head>
<meta >
...不需要jquery mobile的库
</head>
<body>
<div data-role="page">
<div data-role="header" > <!--这里不能放js及css,经测试无效--></div>
<div
data-role="content">
<!--b.html的自定义js,css放在这里,最好是本区域的第一行-->
<!--b.html的dom,这里放置要加载的内容-->
</div>
<div data-role="footer" > <!--这里不能放js及css,经测试无效--></div>
</div>
</body>
5.在做好以上几步之后,从a.html加载b.html的工作基本完成了,js和css也可以生效.最后给出完整的b.html写法,在这里再加一个b.html的初始化加载事件
b.html
<head>
<meta >
...不需要jquery mobile的库
</head>
<body>
<div data-role="page">
<div data-role="header" > <!--这里不能放js及css,经测试无效--></div>
<div
data-role="content">
<!--b.html的自定义js,css放在这里,最好是本区域的第一行-->
<style>
</style>
<script>
$(document).on('pageinit',function(){
$('#txt1').val('456');
});
</script>
<!--b.html的dom,这里放置要加载的内容-->
<input id="txt1" name="txt1">
</div>
<div data-role="footer" > <!--这里不能放js及css,经测试无效--></div>
</div>
</body>
最后
以上就是忐忑书包为你收集整理的jquery mobile ajax页面跳转出现(error load page的错误)及js与css失效的说明和处理的全部内容,希望文章能够帮你解决jquery mobile ajax页面跳转出现(error load page的错误)及js与css失效的说明和处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复