2016-07-26 65 views
0

在試圖瞭解jQUIUI是如何製作的時候,我在代碼中看到他們使用了extend實用程序。然而,它被用來擴展一個匿名對象。jQuery擴展爲匿名對象?

任何人都可以解釋一下嗎?

$.fn.extend({ 
    scrollParent: function(includeHidden) { 
     var position = this.css("position"), 
      excludeStaticParent = position === "absolute", 
/// and the code goes on 

回答

1

1.3中()

作爲documentation狀態,jQuery.fn.extend()方法

合併的對象的內容到jQuery的原型,以提供新的jQuery實例方法。

所以,你的代碼中加入方法scrollParent

擴展jQuery的原型(FN只是一個別名jQuery的原型)你可以把這種新的方法,以任何jQuery對象是這樣的:

$('#myElement').scrollParent(includeHidden); 

jQuery.extend()

jQuery.extend(object1, object2)剛剛合併對象2中object1

檢查更詳細

+0

明白了。 '.extend'與'$ .fn.extend'不相似。 – yossi

+0

第一個擴展了你提供的對象,第二個擴展了jQuery的原型 – kapantzak

1

的代碼延伸$(這是一樣的jQuery對象),因此現在$.scrollParent是一個函數。見here

下面是一個例子,從那個頁面開始。

<script> 
jQuery.fn.extend({ 
    check: function() { 
    return this.each(function() { 
     this.checked = true; 
    }); 
    }, 
    uncheck: function() { 
    return this.each(function() { 
     this.checked = false; 
    }); 
    } 
}); 

// Use the newly created .check() method 
$("input[type='checkbox']").check(); 
</script> 
+0

感謝$.extend()文檔。得到它了。 – yossi