使用fn.extend扩展jQuery背后的基础知识 - 访问成员

时间:2011-06-17 00:27:55

标签: javascript jquery jquery-plugins

我对jQuery做了这个简单的扩展:

 (function($)
    {      
        $.fn.extend({          

            animateleft: function(amount) {              
                    $().animate({
                            left: amount
                            }, 300, function() { }); 

                    return $();    
               }      
         });  
    })(jQuery);

据我所知,通过返回$(),它可以启用链接。我不知道$()中究竟包含了什么。当我尝试这样的事情时,似乎没有触发动画功能:

$('#container').animateleft("+=300"); 

如果$('#container')是以$()传递给扩展名的话,我认为应该有用。

1 个答案:

答案 0 :(得分:2)

在插件方法中,所选元素由this引用。所以它应该是:

(function($) {      
    $.fn.extend({          
        animateleft: function(amount) {              
            this.animate({
                left: amount
            }, 300, function() { }); 
            return this;    
        }      
    });  
})(jQuery);

$()只调用没有参数的jQuery函数,它返回一个新的(空的)jQuery对象。