代码改变世界

jQuery队列控制方法详解queue()/dequeue()/clearQueue()

2013-06-18 15:42  jelly_chow  阅读(1081)  评论(0编辑  收藏  举报

queue(name,[callback]): 

当只传入一个参数时, 它返回并指向第一个匹配元素的队列(将是一个函数数组,队列名默认是fx);$('#demo').queue('name')

当有两个参数传入时, 第一个参数还是默认为fx的的队列名, 第二个参数又分两种情况,

  当第二个参数是一个函数时, 它将在匹配的元素的队列最后添加一个函数.

    $('#demo').queue('name',fun);  用queue将函数fun加入到name队列中

 

  当第二个参数是一个函数数组时,它将匹配元素的队列用新的一个队列来代替(函数数组).

    $('#demo').queue('name',funlistArray);  用queue将这组动画函数数组funlistArray加入到name队列中

 

dequeue(name): 这个好理解, 就是从队列最前端移除一个队列函数, 并执行它.

    $('#demo').dequeue('name');


clearQueue([queueName]):这是1.4新增的方法. 清空对象上尚未执行的所有队列. 参数可选,默认为fx. 但个人觉得这个方法没多大用, 用queue()方法传入两个参数的第二种参数即可实现clearQueue方法.

 

参考:http://mrthink.net/jqueryapi-queue-dequeue/

 var _slideFun=[

 

	function(){$('.one').delay(500).animate({top:'+=270px'},500,_takeOne);},
	function(){$('.two').delay(300).animate({top:'+=270px'},500,_takeOne);},
	function(){$('.three').delay(300).animate({top:'+=270px'},500,_takeOne);},
	function(){$('.four').delay(300).animate({top:'+=270px'},500,_takeOne);},
	function(){$('.five').delay(300).animate({top:'+=270px'},500,_takeOne);},
	function(){$('.six').delay(300).animate({top:'+=270px'},500,_takeOne);},
	function(){$('.seven').delay(300).animate({top:'+=270px'},500,function(){
		alert('按序落体运动结束! Yeah!');
	});}
];
$('#demo').queue('slideList',_slideFun);
var _takeOne=function(){
	$('#demo').dequeue('slideList');
};
_takeOne();