jQuery 数据 - jQuery.queue() 方法
实例
显示队列的长度:
function showIt() { var n = div.queue("fx"); $("span").text( n.length ); setTimeout(showIt, 100); }
定义和用法
queue() 方法显示或操作在匹配元素上执行的函数队列。
注释:这是底层级的方法;使用 .queue() 更加方便。
语法
.queue(queueName)
参数 | 描述 |
---|---|
queueName | 可选。字符串值,包含序列的名称。默认是 fx, 标准的效果序列。 |
操作队列
queue() 方法操作在匹配元素上执行的函数队列。
语法
.queue(queueName,newQueue)
参数 | 描述 |
---|---|
queueName | 可选。字符串值,包含序列的名称。默认是 fx, 标准的效果序列。 |
详细说明
每个元素均可拥有一到多个由 jQuery 添加的函数队列。在大多数应用程序中,只使用一个队列(名为 fx)。队列运行在元素上异步地调用动作序列,而不会终止程序执行。典型例子时调用元素上的多个动画方法。例如:
$('#foo').slideUp().fadeIn();
ຄຳສັ່ງນີ້ຈະຖືກດຳເນີນທັນທີ່ມີຄວາມຮັບຮູ້ ແຕ່ການດຳເນີນຄວາມປະສົງສະແດງຈະຖືກຕັ້ງພາຍໃນລະບົບ fx ແລະຈະຖືກເອິ້ນພາຍຫຼັງການດຳເນີນຄວາມປະສົງການພັດທະນາ
ການມີ .queue() ອະນຸຍາດໃຫ້ພວກເຮົາປະຕິບັດກັບລະບົບຄັນຫຼັກພາຍໃນ. ການເອິ້ນ .queue() ທີ່ມີຫົວຫຼັກກັບຫົວຫຼັກກັບການສະແດງຄືກັນຈະມີຜົນປະໂຫຍດຫຼາຍ; ມັນອະນຸຍາດໃຫ້ພວກເຮົາຕັ້ງຫົວຫຼັກໃນທີ່ສຸດຂອງລະບົບຄັນ
ຄວາມປະສົງນີ້ຄືກັບການຕອບກັບຫົວຫຼັກການດຳເນີນຄວາມປະສົງຂອງພວກມັນເຊິ່ງບໍ່ຕ້ອງການຕັ້ງຫົວຫຼັກກັບການດຳເນີນຄວາມປະສົງ
$('#foo').slideUp(); $('#foo').queue(function() { alert('Animation complete.'); $(this).dequeue(); });;
ການເທິງຕັ້ງທີ່ຄືກັນ
$('#foo').slideUp(function() { alert('Animation complete.'); );
ບໍ່ວ່າພວກເຮົາຕັ້ງຫົວຫຼັກຈາກ .queue() ພວກເຮົາຕ້ອງເຫັນວ່າ .dequeue() ໄດ້ຖືກເອິ້ນພາຍຫຼັງນັ້ນເພາະຫົວຫຼັກໃນລະບົບຄັນຈະສາມາດດຳເນີນໄດ້
ຕົວຢ່າງ 1
ການປະຕິບັດຄັນທີ່ສະເພາະສຳລັບຫົວຫຼັກ
$(document.body).click(function () { $("div").show("slow"); $("div").animate({left:'+=200'},2000); $("div").queue(function () { $(this).addClass("newcolor"); $(this).dequeue(); });; $("div").animate({left:'-=200'},500); $("div").queue(function () { $(this).removeClass("newcolor"); $(this).dequeue(); });; $("div").slideUp(); );
ຕົວຢ່າງ 2
ການຕັ້ງລະບົບຄັນທີ່ຕັດພັກຄັນຈາກລະບົບຄັນ
$("#start").click(function () { $("div").show("slow"); $("div").animate({left:'+=200'},5000); $("div").queue(function () { $(this).addClass("newcolor"); $(this).dequeue(); ); $("div").animate({left:'-=200'},1500); $("div").queue(function () { $(this).removeClass("newcolor"); $(this).dequeue(); ); $("div").slideUp(); ); $("#stop").click(function () { $("div").queue("fx", []); $("div").stop(); );