深刻了解jQuery之鏈式結構

本文是在閱讀了Aaron艾倫的jQuery源碼解析(地址:http://www.imooc.com/learn/172)後的我的體會以及筆記。在這裏感謝艾倫老師深刻淺出的講解!!

1 什麼是鏈式?

先來段代碼:ide

$('#level > a').click(function(){
            $(this).addClass('current').next().show().parent().siblings().children('a').removeClass('current').next().hide()
        })

  這段代碼的意思是: 當點擊id爲level中的直屬a元素時,將所點擊的a元素添加一個current的class,將該a元素的下一個同級元素顯示出來,將這個同級元素的
父元素的全部同級元素的標籤爲a 的子元素移除 current class,將每一個a元素的下一個元素隱藏函數

這麼複雜的任務僅僅用了一行代碼就完成了,這就是鏈式的方便性!this

2  爲何jQuery能用鏈式?

  就拿上面的代碼來講吧,$(this).addClass('current).next() ,爲何addClass()後面能直接使用next()?一切盡在源碼:對象

jQuery.fn.extend({
    addClass: function( value ) {
        //  省略...
return this; },

  看到了木有?addClass函數最後的一句:return this rem

  也就是,僅從對象上來講: $(this).addClass('current') === $(this)get

 addClass詳細源碼

不只是addClass() 像什麼 removeClass()  show() hide()......都在結尾存在這麼一句: return this源碼

相關文章
相關標籤/搜索