jquery mobile ajax加载模式下JS不执行的问题

出处 http://q.cnblogs.com/q/44401/

环境:C/S:andriod,ios phonegap/jboss+jquerymobile。所有页面所存储在server端。client端传给phonegap一个url初始地址。

 

问题描述:server端有a.jsp和b.jsp2个页面,具体如下图所示

工作流程

a.jsp和b.jsp都引入了jquerymobile的相关js,但手机进入b.jsp后,页面js没有执行,(我把b.jsp的所有内容都清空了,只留下jquerymobile的相关js并alert一下,结果alert都没有执行。),请问是什么原因呢?




原因是因为ajax造成的:

这个是jquery mobile 默认的一种页面加载方式,比如从A页面到B页面。

它默认是通过ajax去把B页面的body部分的dom取出来,然后放到加入到A

页面中显示的。所以你的B页面的js没有执行。

你可以尝试设置它的参数,不要采取这种方式加载。

解决方法

一:把B页面中的脚本放到<div data-role="page"></div>里面;或者

二:$.mobile.ajaxEnabled = false;设置不使用ajax方式加载页面。当然有很多方法,这个会在全局禁用掉ajax加载。如果是A标签可以可以加上data-ajax=false属性。



把下面代码入在jquery.mobile.js前面 

$(document).bind('mobileinit',function() { 
    jQuery.mobile.ajaxEnabled = false; 
}); 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值