jQuery.queue()
jQuery.queue( element, [ queueName ] ) 返回: Array
描述: 顯示在匹配的元素上的已經(jīng)執(zhí)行的函數(shù)列隊。
-
version added: 1.3jQuery.queue( element, [ queueName ] )
element一個用于檢查附加列隊的DOM元素。
queueName一個含有隊列名的字符串。默認(rèn)是"Fx",標(biāo)準(zhǔn)的動畫隊列。
注意: 這是一個底層的方法,你應(yīng)該用.queue()代替。
例子:
顯示列隊的長度。
<!DOCTYPE html>
<html>
<head>
<style>div { margin:3px; width:40px; height:40px;
position:absolute; left:0px; top:30px;
background:green; display:none; }
div.newcolor { background:blue; }
span { color:red; } </style>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<button id="show">Show Length of Queue</button>
<span></span>
<div></div>
<script>$("#show").click(function () {
var n = jQuery.queue( $("div")[0], "fx" );
$("span").text("Queue length is: " + n.length);
});
function runIt() {
$("div").show("slow");
$("div").animate({left:'+=200'},2000);
$("div").slideToggle(1000);
$("div").slideToggle("fast");
$("div").animate({left:'-=200'},1500);
$("div").hide("slow");
$("div").show(1200);
$("div").slideUp("normal", runIt);
}
runIt();</script>
</body>
</html>
Demo:
jQuery.queue( element, queueName, newQueue ) 返回: jQuery
描述: 在匹配元素上操作已經(jīng)附加函數(shù)的列表。
-
version added: 1.3jQuery.queue( element, queueName, newQueue )
element一個已附加列隊函數(shù)(數(shù)組)的DOM元素 。
queueName一個含有隊列名的字符串。默認(rèn)是"Fx",標(biāo)準(zhǔn)的動畫隊列。
newQueue一個替換當(dāng)前函數(shù)列隊內(nèi)容的數(shù)組。
-
version added: 1.3jQuery.queue( element, queueName, callback() )
element一個要附加列隊函數(shù)的DOM元素。
queueName一個含有隊列名的字符串。默認(rèn)是
fx,標(biāo)準(zhǔn)的動畫隊列。callback()添加到列隊的新函數(shù)。
注意: 這是一個底層的方法,你應(yīng)該用.queue()代替。
每個元素可以通過jQuery包含一個或多個函數(shù)隊列。在大多數(shù)應(yīng)用中,只有一個列隊(訪問 fx)被使用。隊列允許一個元素來異步的訪問一連串的動作,而不終止程序執(zhí)行。
jQuery.queue()方法允許我們直接操縱這個函數(shù)隊列。用一個回調(diào)函數(shù)訪問jQuery.queue()特別的有用;它讓我們把新函數(shù)置入到隊列的末端。
值得注意的是,當(dāng)使用jQuery.queue()添加一個函數(shù)的時候,我們必須保證jQuery.dequeue()讓下一個函數(shù)執(zhí)行后被呼叫 。
舉例:
例子: Queue a custom function.
<!DOCTYPE html>
<html>
<head>
<style>
div { margin:3px; width:40px; height:40px;
position:absolute; left:0px; top:30px;
background:green; display:none; }
div.newcolor { background:blue; }
</style>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
Click here...
<div></div>
<script>
$(document.body).click(function () {
$("div").show("slow");
$("div").animate({left:'+=200'},2000);
jQuery.queue( $("div")[0], "fx", function () {
$(this).addClass("newcolor");
jQuery.dequeue( this );
});
$("div").animate({left:'-=200'},500);
jQuery.queue( $("div")[0], "fx", function () {
$(this).removeClass("newcolor");
jQuery.dequeue( this );
});
$("div").slideUp();
});</script>
</body>
</html>
Demo:
例子: Set a queue array to delete the queue.
<!DOCTYPE html>
<html>
<head>
<style>
div { margin:3px; width:40px; height:40px;
position:absolute; left:0px; top:30px;
background:green; display:none; }
div.newcolor { background:blue; }
</style>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<button id="start">Start</button>
<button id="stop">Stop</button>
<div></div>
<script>
$("#start").click(function () {
$("div").show("slow");
$("div").animate({left:'+=200'},5000);
jQuery.queue( $("div")[0], "fx", function () {
$(this).addClass("newcolor");
jQuery.dequeue( this );
});
$("div").animate({left:'-=200'},1500);
jQuery.queue( $("div")[0], "fx", function () {
$(this).removeClass("newcolor");
jQuery.dequeue( this );
});
$("div").slideUp();
});
$("#stop").click(function () {
jQuery.queue( $("div")[0], "fx", [] );
$("div").stop();
});
</script>
</body>
</html>