jQuery扩展到匿名对象?

时间:2016-07-26 10:45:36

标签: jquery jquery-ui

在尝试了解如何制作jQueryUI时,我在代码中看到他们使用了extend实用程序。但是,它用于扩展匿名对象。

有人可以解释一下吗?

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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

<强> 1.3中()

正如documentation所述,jQuery.fn.extend()方法

  

将对象的内容合并到jQuery原型上,以提供新的jQuery实例方法。

因此,您的代码通过添加方法scrollParent

扩展了jQuery的原型( fn 只是jQuery原型的别名

您可以将此新方法调用到任何jQuery对象,如下所示:

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

<强> jQuery.extend()

jQuery.extend( object1, object2 )只是将object2合并到object1

查看$.extend()文档以获取更多详细信息