发烧根源
最近在写jQuery,我是一个懒人,做网页设计这么久了,可却是很怕写js代码,因为我的语言基础不怎么过关,当年学的C和C++都是混过来的,每次都想狠心的学好,可是每次学了一半就学不下去了,因为算法的东西真的很痛苦。也许是因为我的兴趣和当时的心态有问题吧。一切都是过眼云烟,不提了。
js也没学好,看了几本书,看得最认真的一本就是《锋利的jQuery》,最近在看《jQuery权威指南》,下定决心要把这本jQuery指南背下来,不管以后还会学到其他的东西,就算是给我自己一个诺言:学好jQuery。
jQuery代码写得多了,我发现我总是在做无用功,重复的动作,其实可以通过一个jQuery插件拓展出来,不但节省了空间、时间,同时也不容易犯错。于是今晚发烧,再看了一篇锋利jQuery里面提到的制作插件部分,可是发现自己写出来的和理想的还是有差距。应该是没有彻底的理解。
jQuery插件的制作分为三种类型
- 封装对象方法的插件:将对象封装起来,用于对通过选择器获取的jQuery对象进行操作,是最常见的一种插件。
- 封装全局函数的插件:可以将独立的函数加到jQuery命名空间下。
- 选择器插件
jQuery插件的机制
jQuery提供了两个用于扩展jQuery功能的方法,即jQuery.fn.extend()和jQuery.extend()方法。前者用于扩展第一种类型,后者用于扩展后面两种类型。
jQuery.extend()除了扩展jQuery对象之外,还有一个强大的功能,就是扩展已有的object对象。
jQuery代码如下:
jquery.extend(target,obj1,……,obj[N])
jQuery extend经常被用于设置插件的一系列默认参数如
function foo(option){
option=jQuery.extend({
name:”bar”,length:5,dataType:”xml”
},option);
如果用户调用了foo()方法,如果在里面设置了参数,则使用设置的参数,否则就使用默认的。
foo({name:”a”,length:”4″,dataType:”json”});
编写jQuery插件
1.封装jQuery对象方法的插。