最近在做一个移动端项目,据说jquery mobile很好用,但是一接触直接来了两个闹心的异常,坎坷的弄了好久才解决,整理出来共享给大家
1.在使用jQuery Mobile进行Web开发中,当页面跳转时(pageA => pageB),在pageB中引用的JS并未成功运行
原因:JQM并为将整个页面加载到当前的dom中,仅将data-role="page"元素(或body)加入当前的dom中。所以只有第一个页面<head>标签内的js生效
其它页面<head>中引入的外部JS文件,以及<page>标签外的JS均不能正常运行,刷新页面后方可加载成功。
解决方法
鉴于JQM这个特性不太可能主动更改,可以用两种方法来解决:
一:将页面内部JS写在data-role="page"标签下,这样无论页面怎样跳转,均可以运行。
二:$.mobile.ajaxEnabled = false;设置不使用ajax方式加载页面。当然有很多方法,这个会在全局禁用掉ajax加载。也可以在A标签可以可以加上data-ajax=false属性。
把下面代码入在jquery.mobile.js前面
- $(document).bind('mobileinit',function() {
- jQuery.mobile.ajaxEnabled = false;
- });
三:是在index页面中,注册所有需要使用到的外部JS文件,或者使用母版页面来统一;