最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery 源碼分析筆記(7) Queue

 更新時間:2011年06月19日 23:57:13   作者:  
queue是用來維護(hù)函數(shù)隊(duì)列的。比較常用的是queue(queueName, callback);其中queueName缺省是fn,即標(biāo)準(zhǔn)函數(shù)隊(duì)列。
每個Element可以擁有多個隊(duì)列,但是基本上都只使用到一個,即默認(rèn)的fn隊(duì)列。隊(duì)列允許一系列函數(shù)被異步地調(diào)用而不會阻塞程序。例如:$("#foo").slideUp().fadeIn();其實(shí)這個就是我們大家常用的鏈?zhǔn)秸{(diào)用,實(shí)際上這是一個Queue。所以隊(duì)列和Deferred地位類似,是一個內(nèi)部使用的基礎(chǔ)設(shè)施。當(dāng)slideUp運(yùn)行時,fadeIn被放到fx隊(duì)列中,當(dāng)slideUp完成后,從隊(duì)列中被取出運(yùn)行。queue函數(shù)允許直接操作這個鏈?zhǔn)秸{(diào)用的行為。同時,queue可以指定隊(duì)列名稱獲得其他能力,而不局限于fx隊(duì)列。
復(fù)制代碼 代碼如下:

// 一般用法:
$("#foo").slideUp(function() {
alert("Animation complete.");
});
// 相當(dāng)于:
$("#foo").slideUp(); // 不提供回調(diào),只是觸發(fā)事件
$("#foo").queue(function() { // 把回調(diào)函數(shù)加入
alert("Animation complete.");
$(this).dequeue(); // 必須從隊(duì)列中取出,那么隊(duì)列中的下一個函數(shù)就有機(jī)會被調(diào)用
});

queue內(nèi)部使用data或者JavaScript數(shù)組API來保存數(shù)據(jù)。其中操作數(shù)組的push和shift天生就是一組隊(duì)列API。而data可以用來保存任意數(shù)據(jù)。
復(fù)制代碼 代碼如下:

queue: function(elem, type, data) {
if(elem) {
// 默認(rèn)是fn
type = (type || "fx") + "queue";
// data內(nèi)部API:data(element, key, value, pvt);
// 這里不傳入data,是為了效率的考慮。如果沒傳入data,則只是get隊(duì)列,那么就不需要以下的判斷了
var q = jQuery.data(elem, type, undefined, true);
if(data) {
if(!q || jQuery.isArray(data)) {
q = jQuery.data(elem, type, jQuery.makeArray(data), true);
} else {
q.push(data); // 壓入
}
}
return q || [];
}
}
dequeue: function(elem, type) { type = type || "fx"; // 得到這個隊(duì)列 var queue = jQuery.queue(elem, type), // 出列一個元素 fn = queue.shift(), defer;
// "inprogress"崗哨
if(fn === "inprogress") {
fn = queue.shift();
}
if(fn) {
// 加一個崗哨,防止自動出列
if(type === "fx") {
queue.unshift("inprogress");
}
// 執(zhí)行
fn.call(elem, function() {
jQuery.dequeue(elem, type);
});
}
if(!queue.length) {
jQuery.removeData(elem, type + "queue", true);
handleQueueMarkDefer(elem, type, "queue");
}
}

相關(guān)文章

  • jQuery實(shí)現(xiàn)的登錄浮動框效果代碼

    jQuery實(shí)現(xiàn)的登錄浮動框效果代碼

    這篇文章主要介紹了jQuery實(shí)現(xiàn)的登錄浮動框效果代碼,點(diǎn)擊登陸鏈接可彈出懸浮登錄框,涉及jQuery中show與hide方法的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • 使用jQuery仿蘋果官網(wǎng)焦點(diǎn)圖特效

    使用jQuery仿蘋果官網(wǎng)焦點(diǎn)圖特效

    這篇文章主要介紹了使用jQuery仿蘋果官網(wǎng)焦點(diǎn)圖特效,非常的炫酷,需要的朋友可以參考下
    2014-12-12
  • jQuery - css() 方法示例詳解

    jQuery - css() 方法示例詳解

    css()方法設(shè)置或返回被選元素的一個或多個樣式屬性,下面有幾個不錯的示例,大家可以感受下
    2014-01-01
  • jQuery zTree如何改變指定節(jié)點(diǎn)文本樣式

    jQuery zTree如何改變指定節(jié)點(diǎn)文本樣式

    這篇文章主要介紹了jQuery zTree如何改變指定節(jié)點(diǎn)文本樣式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • JQuery解析XML數(shù)據(jù)的幾個簡單實(shí)例

    JQuery解析XML數(shù)據(jù)的幾個簡單實(shí)例

    下面小編就為大家?guī)硪黄狫Query解析XML數(shù)據(jù)的幾個簡單實(shí)例。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • 基于jQuery倒計(jì)時插件實(shí)現(xiàn)團(tuán)購秒殺效果

    基于jQuery倒計(jì)時插件實(shí)現(xiàn)團(tuán)購秒殺效果

    倒計(jì)時在WEB上應(yīng)用非常廣泛,如考試系統(tǒng)倒計(jì)時,團(tuán)購網(wǎng)站中的優(yōu)惠活動倒計(jì)時等等。今天,我們來使用jQuery倒計(jì)時超級實(shí)現(xiàn)團(tuán)購秒殺效果,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • juqery 學(xué)習(xí)之三 選擇器 層級 基本

    juqery 學(xué)習(xí)之三 選擇器 層級 基本

    juqery 學(xué)習(xí)之三 選擇器 層級 基本,學(xué)習(xí)jquery的朋友可以參考下。
    2010-11-11
  • 檢測jQuery.js是否已加載的判斷代碼

    檢測jQuery.js是否已加載的判斷代碼

    測類、方法、變量或?qū)傩允欠褚汛嬖冢@是Javascript編程基礎(chǔ)知識。在這里我們就是要檢測jQuery()或$()函數(shù)是否存在
    2011-05-05
  • jQuery中attr()方法用法實(shí)例

    jQuery中attr()方法用法實(shí)例

    這篇文章主要介紹了jQuery中attr()方法用法,實(shí)例分析了attr()方法的功能、定義及設(shè)置或返回匹配元素屬性值的使用技巧,需要的朋友可以參考下
    2015-01-01
  • jquery分割字符串的方法

    jquery分割字符串的方法

    這篇文章主要介紹了jquery分割字符串的方法,涉及jQuery中使用split方法進(jìn)行字符串分割的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06

最新評論

南城县| 漳州市| 伊通| 屯昌县| 抚顺县| 三明市| 綦江县| 灵武市| 游戏| 霍林郭勒市| 辽阳市| 抚顺县| 吉林市| 望都县| 新竹县| 佛教| 梁河县| 西畴县| 略阳县| 广南县| 义马市| 长海县| 宜兰市| 武陟县| 泽州县| 旬邑县| 罗定市| 崇明县| 牟定县| 普宁市| 乌拉特中旗| 景洪市| 白城市| 怀化市| 彩票| 江西省| 精河县| 诸城市| 长子县| 南丹县| 若羌县|