999在线视频精品免费播放观看-国产在线观看无码免费视频-漂亮人妻被中出中文字幕-国产精品妇女一二三区

jQuery的功能:

    我們?nèi)粘J褂胘avascript干的最多的事情也就是

        1.查找DOM節(jié)點

        2.然后再對查找到的節(jié)點進行操作,例如修改樣式 添加事件監(jiān)聽 修改內(nèi)容等。

   而jQuery框架的功能就是根據(jù)傳遞進來的參數(shù)賽選DOM節(jié)點,將DOM節(jié)點數(shù)組封裝成jQuery對象.然后對這個 jQuery對象進行操作。  

jQuery框架的總體架構(gòu):

 
(function (window,undefined){
    //jQuery的源碼
})(window)

    可以看到這里使用了一個匿名函數(shù)將所有源碼進行了封裝,這樣有以下幾個好處:

1. 可以防止命名沖突 里面定義的變量不會給外面的矛盾。

        2. 可以實現(xiàn)私有變量和私有方法,只將提供給外界的公共接口暴露出來。 

 

 jQuery對象的創(chuàng)建:

由上面的講解可知所有的功能都是建立在jQuery對象的基礎(chǔ)之上的所以我們首先來看一下這個對象的構(gòu)建:

 
 
var jQuery = function( selector, context ) {
return new jQuery.fn.init( selector, context );
},

    這里我們可以看到其實jQuery對象就是jQuery.fn.init對象,在init方法里面完成了jQuery對象的創(chuàng)建。這個方法的作用就是根據(jù)接受的字符串創(chuàng)建一個jQuery對象,其實這個對象就是一個DOM節(jié)點集合的數(shù)組。

 
//有定義了兩個變量可以在多框架時使用
_jQuery = window.jQuery,
_$ = window.$,
//將jQuery對象提供給外界使用
window.jQuery = window.$ = jQuery

 

   jQuery對象的擴展機制:

      創(chuàng)建了jQuery對象接下來就是要對對象進行方法擴展了。jQuery中有兩種類型的方法,一種是jQuery的靜態(tài)方法還有一種是類的實例方法。

 
jQuery.fn.init.prototype = jQuery.fn;//這樣我們要給jQuery擴展實例方法直接在jQuery.fn上面添加即可。

     接著定義了extend方法: 用來擴展jQuery對象。

 
jQuery.extend = jQuery.fn.extend = function(){
   /*
        基本思路 使用for  in循環(huán)遍歷每一個屬性進行拷貝。
   */
}

     從上面的方法可以看出

        jQuery.extend()是給類擴展靜態(tài)方法

        jQuery.fn.extend()是給類擴展實例方法

 

   jQuery庫的擴展:

 

       上面這些準備工作都做完之后接著就是要對jQuery對象進行擴展了,對于jQuery的擴展可以分為以下幾個模塊:

           核心模塊  :  

               1. 對jQuery對象進行操作的一些方法,因為jQuery對象實際是一個數(shù)組所以就是添加了一些數(shù)組的常用方法.。 例如:  size()  get()  first()  last()  slice()  map()等。

               2. 緩存系統(tǒng)

                   用來給DOM節(jié)點上存貯數(shù)據(jù)的。方法有data()  removeData()兩個方法。具體實習實現(xiàn)參考后面的文章。

               3. 隊列系統(tǒng)   

                   這幾個方法主要用來實現(xiàn)動畫模塊,方法有queue()  dequeue()  clearQueue().

           工具類模塊  : 

               這部分主要提供了一些工具方法例如對字符串的處理,數(shù)組的處理,瀏覽器特性的一些測試等。

           事件處理模塊  :

                  jQuery對于事件的處理方式是: 創(chuàng)建了一個Event構(gòu)造函數(shù)用來生成 事件對象 ,這個對象是在 W3C event對象基礎(chǔ)上建立的,并且屏蔽了瀏覽器之間的差異。還定義了一個event對象 里面添加 了一些常用的對事件處理的方法 例如事件綁定 解綁  事件觸發(fā) 等這些方法使用的都是Event構(gòu)造函 數(shù)創(chuàng)建出來的對象。有了這個event對象 接下來就是利用each方法和extend方法jquery.fn這個對象添加一些事件監(jiān)聽器。內(nèi)部都是調(diào)用了event的方法。

     動畫模塊   : 包括CSS選擇器模塊、 DOM操作模塊。