jQuery插件开发基础知识:类级别和对象级别插件编写

需积分: 0 0 下载量 137 浏览量 更新于2024-08-31 收藏 113KB PDF 举报
jQuery弹簧插件编写基础之“又见弹窗” 本文将对jQuery弹簧插件编写基础之“又见弹窗”进行详细的知识点总结,涵盖jQuery插件开发的基础知识、插件开发的两种方式、接收配置参数等方面的内容。 **jQuery插件开发的基础知识** jQuery插件开发主要分为两类:类级别和对象级别。类级别,即在jQuery类本身上扩展方法,类似与$.ajax,$.get等。对象级别,这里所谓的对象是指通过jQuery选择器选中的jQuery对象,在该对象上添加方法。例如:$('div').css(), $('div').show()等。在实际开发中,我们通常选用对象级别的方法来开发插件,jQuery强大的选择器及对象操作是我们选择这种方式很大的一个原因。 **类级别的插件开发** 在类级别的插件开发中,我们可以使用$.extend()方法来扩展jQuery类上的方法。例如: ``` $.extend({ foo: function(){ // }, bar: function(){ // } }) ``` 在这里,对扩展方法的命名需要考究一些,以免与jQuery类中的原有方法重名。即便如此,当我们需要在类上扩展多个方法时仍有可能会出现命名冲突的情况,为此我们可以创建自定义的命名空间: ``` $.myPlugin={ foo: function(){ // }, bar: function(){ // } } ``` 这样,我们可以避免命名冲突,并且可以更好地组织我们的插件代码。 **对象级别的插件开发** 在对象级别的插件开发中,我们可以使用$.fn对象来扩展jQuery对象上的方法。例如: ``` $.fn.foo = function(){ //doSomething } ``` 这样,我们可以在选择器选中的对象上调用foo方法,例如: ``` $('#obj').foo(); ``` **jQuery.fn的原理** 在对象级别的插件开发中,我们经常使用$.fn对象来扩展jQuery对象上的方法,但你知道$.fn是什么东东吗?其实,$.fn是jQuery.prototype的别名,查看jQuery源码我们可以发现: ``` jQuery.fn = jQuery.prototype = { init: function(selector, context){ //. } } ``` **接收配置参数** 在编写一个插件时,我们可以让使用插件的人能按自己的意愿设置插件的一些属性,这就需要插件有接收参数的功能,同时当使用插件的人不传入参数时,插件内部也有一套自己默认的配置参数。例如: ``` $.fn.foo = function(options){ var defaults = { color: '#000', backgroundColor: 'red' } } ``` 这样,我们可以在使用插件时传入自定义的参数,也可以使用插件内部的默认配置参数。