王新阳

wangxinyang

jQueryUI拖拽排序部件 sortable

DEMO  http://jqueryui.com/sortable/

API   http://api.jqueryui.com/sortable/

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');

JQ、js获取iframe中的元素、方法,判断iframe是否加载完成

父窗口操作iframe元素:
window.frames['framename'].document.getElementsByTagName('ul')
window.frames['framename'].$('#aaa').val()
$(window.frames['framename'].document).find('#aaa').val()

父窗口调用iframe方法:
window.frames['framename'].func();
$(window.frames['framename'])[0].func();
$("iframe[name='framename']")[0].contentWindow.func();

iframe获取父窗口元素:
window.parent.$('#abc').val()
$(window.parent.document).find('#abc').val()

-------------------------------------

jquery判断iframe是否加载完成
var iframe=$("#IFrame");      
iframe.prop("src","http://www.aijquery.cn");    
iframe.load(function(){       
    alert("加载完毕");    
});

用attachEvent来判断
var iframe=$("#IFrame");
iframe.prop("src","http://www.baidu.com");
if (iframe[0].attachEvent){ 
    iframe[0].attachEvent("onload", function(){ // IE 
        alert("加载完毕"); 
    }); 
} else { 
    iframe[0].onload = function(){ // 非IE 
        alert("加载完毕"); 
    }; 
}

jquery background animate

$("div").animate({
backgroundPositionX: "-120px",
backgroundPositionY: "0px"
})
2024-04-28 星期日 农历三月二十