重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
jquery插件开发一般有两种方法:
创新互联公司从2013年成立,先为龙川等服务建站,龙川等地企业,进行企业商务咨询服务。为龙川企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。1 通过$.extend()来扩展,写成jQuery.extend()也可以的
2 通过$.fn.extend()来进行扩展,也可以写成jQuery.fn.extend()
第一种方法,相当于在$身上添加了一个全局函数,如果和后台java、c#类比的话,就是相当于在
$或jQuey这个类上添加了一个静态的方法(函数)
那怎么写?
把通过第一种方法扩展的插件写在这个common.js文件里,然后在index.html页面去测试
代码:
非常简单的一行代码
然后看index.html页面调用
然后看控制台输出:
一切都是妥妥的,没毛病,而且其他页面如果引用了,都能使用这个方法。
但是如果需要定义多个全局的函数,通常我们用面向对象的思想来编写。
例如:
将所有的成员都挂在一个对象上,或者说是放在一个命令空间里。这样做的好处就是,不用定义太多的外部变量,避免引起冲突。
调用:
调用的话就是: $.对象名.成员。
结果:
当然我们也可以用jQuery提供给我们用于扩展用的行数extend()
例如:
调用:
结果:
前面的这些都属于第一种方法的范畴,本质就是在$上添加全局函数就可以了。
再看第二种方式$.fn.extend(),这种方式相当于给$的每一个实例对象添加方法(函数)
首先我们要知道fn是个什么鬼,查看jQuery源代码,会发现这样的一行代码:
说明我们就是在原型上去做的扩展。
例如:
注意:index是对应的索引,ele对应的是每一个dom元素对象
最后一样的return是用于支持链式调用的。
调用:
最后的效果:
如果要扩展多个方法,这个时候就需要这样写了
显然比较麻烦!
还是一样可以使用jQuery提供给我们的方法(函数)$.fn.extend()
如果要扩展多个就可以这样写了
调用:
能够链式操作。
效果如图所示:
总结:
jQuey插件编写的两种方式:
1 $.extend(); // 在全局上添加函数 相当于静态方法(类比C#)
2 $.fn.extend(); // 相当于给jquey对象添加 相当于实例方法(类比C#)
再补充一点:
这个外面的this和里面的这个this不是同一个对象
查看其结果:
注意里面的每一个this对象都是dom对象
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。