我是靠谱客的博主 忧虑河马,最近开发中收集的这篇文章主要介绍jqm(jquery mobile)报错:error loading page解决,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

之前使用jqm开发,从做项目开始的时候这个问题(error loading page)就一直存在,而且一直是以一种神奇的方式存在,有时候会突然蹦出来,重新刷新一下又消失了,所以这个问题都一直拖着,直到最后实在要发版本了不能再拖了,总不能让别人在手机上刷新页面吧。

最后在jquery.mobile.js文件中调试的时候,终于发现了问题,因为我们整合了进了backbone,所以我们的页面跳转方式不用默认的jqm的页面跳转,所以在jqm.config.js中的mobileinit事件中加入了

$.mobile.linkBindingEnabled = false;禁掉了默认的jqm的页面跳转方式,才能使用backbone的方式,

$(document).bind("mobileinit", function () {
			console.log("configure jqm");
			$.mobile.ajaxEnabled = false;
		        $.mobile.linkBindingEnabled = false;
			$.mobile.hashListeningEnabled = false;
			$.mobile.pushStateEnabled = false;
			$.mobile.defaultPageTransition = 'slide';
			$.mobile.buttonMarkup.hoverDelay = "false";
	  	    $.mobile.transitionFallbacks.slideout = "none";
	  	    // Remove page from DOM when it's being replaced
	  	    $.mobile.pageLoadErrorMessage = 'Sorry, something went wrong. Please try again.';
	  	    $(document).on('pagehide', 'div[data-role="page"]', function (event, ui) {
	  	        //移除下拉监听事件
	  	        $(document).off("pageinit", "div.pull-demo-page");
	  	        $(event.currentTarget).remove();
	  	    });
	  	});

我们发现出于某种原因这种跳转方式有时候又没有被禁掉,而jqm的这种页面跳转方式没被禁掉的时候,在backbone中页面切换就会有error loading page的问题,最后定位问题是在jqm.config.js加载顺序不对,我们并没有在最开始加载这个文件,最后的解决方案是我们在main.js中如下处理

require(['app', 'jqmconfig'], function (app,jqmconfig) {
	app.initialize();
});

我们在上面代码中加了jqmconfig,这是jqm.config.js的引入后的文件名,表示我们在开始的时候就加载jqm.config.js文件,即绑定mobileinit事件,问题就解决了。

最后

以上就是忧虑河马为你收集整理的jqm(jquery mobile)报错:error loading page解决的全部内容,希望文章能够帮你解决jqm(jquery mobile)报错:error loading page解决所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部