王新阳

wangxinyang

jquery mobile动态添加元素

动态添加li

$('ul').append('<li>内容</li>').listview('refresh');

动态添加ul

$('div').append('<ul data-role="listview"><li>内容</li></ul>').trigger('create');

动态添加option

$('select').append('<option value="1">内容</option>').selectmenu('refresh');
jquery mobile 多个页面间切换时,遇到页面内容不变的情况,首先检查data-role="page"的id,确保id不同。在不禁用ajax的情况下,id相同,jqm不会发起新的请求,而是直接调用缓存。

jquery mobile 开启页面缩放

在jquery mobile中页面缩放默认是关闭的。要开始缩放功能,只需在header或footer标签添加data-disable-page-zoom=false属性即可。

<div data-role="header|footer" data-disable-page-zoom="false">

注:开启缩放时,data-role=header|footer中都不能有data-position="fixed"属性。

jquery mobile转跳页面时闪动问题的解决

<a href="url" data-transiation="slide">文本</a>
slide转跳时当前页面滚动条会跳到页面顶端
slidefade不会出现这种问题
以下CSS解决进入目标页面后闪一下的问题,效果还不错
.ui-page {
	backface-visibility:hidden;
	-webkit-backface-visibility:hidden;	/* Chrome 和 Safari */
	-moz-backface-visibility:hidden; 	/* Firefox */
	-ms-backface-visibility:hidden; 	/* Internet Explorer */
}

jquery mobile 禁用ajax

局部禁用ajax,只需在a标签上添加 data-ajax="false" 或 rel="external" 站外链接)

全局禁止ajax,需要在jquery.js之后、jquery.mobile-1.4.5.js引用之前添加:

<script>$(document).ready(function(){jQuery.mobile.ajaxEnabled = false;});</script>

jquery mobile pageinit等事件多次执行的解决

如果从页面A到B再返回A时,页面A中的pageinit、pageshow等事件会执行多次,解决方法是给当前页面的page(data-role='page')绑定一个变量。

$(document).on('pageinit', '#pageid', function(){
	if(!$(this).data('loaded')){
		$(this).data('loaded', true);
		alert(0);
	};
});

jquery mobile 1.4+ 调用和关闭loading

$.mobile.loading('show', {
	text: '加载中……', //加载器中显示的文字  
	textVisible: false, //是否显示文字  
	theme: 'a',        //加载器主题样式a-e  
	textonly: false,   //是否只显示文字  
	html: ''           //要显示的html内容,如图片等  
});

$.mobile.loading('hide');
2024-04-27 星期六 农历三月十九