积跬步,聚小流------实例分析jquery开发插件两种方法的区别
来源:互联网 发布:js函数式编程书籍 编辑:程序博客网 时间:2024/05/27 14:15
1、简介
jquery为开发插件提供了两个方法:
* jquery.extend(object); 为jquery类本身添加新的方法
* jquery.fn.extend(object); 用来为jquery对象添加新的方法
2、理论介绍
分析这两个方法,不同点就在于中间多了一个.fn,那么这个.fn又是什么意思呢?
$.fn是指jquery的命名空间,加了fn的方法和属性,会对jquery的每一个实例有效。
换种说法来解释的话:
jquery本身是一个类,有它的属性和方法,赤裸裸的“万物皆对象”嘛,
加了.fn的方法就是相当于给这个类中添加了一个成员函数,成员方法,也就是说每次对这个类实例化的时候,实例化对象都可以调用这个方法。
而没有加.fn的方法,则是类似于加了一个静态函数,使用的时候可以直接调用。
3、代码类比
如果单纯的解释不清楚话,我们可以用java代码来类比下:
//用这个类来代替jQuerypublic class Jquery{private String div; //有默认的属性public void fade(){ //有默认的方法...}}
//用这个类来代替jQuerypublic class Jquery{private String div;public void fade(){...} public static void scrolltotop(){ //添加了一个静态方法 ... }<span style="font-size:14px;">}</span>
而如果执行的是.fn.extend,则完成的代码则为:
//用这个类来代替jQuerypublic class Jquery{private String div;public void fade(){...} public void scrolltotop(){ ... }}
Jquery jquery=new Jquery;jquery.scrolltotop();
4、实例分析
我们用“返回顶部”来作为一个应用实例。首先我们用.extend来实现下,并模拟调用
;(function($){$.extend({scrolltotop:function(speed){speed=typeof speed==="number"?speed:500;$("#toTop").click(function(event){$("html,body").stop().animate({scrollTop:'0px'},speed)});},});})(jQuery)
<script type="text/javascript"> $.scrolltotop(400);</script>
<pre name="code" class="javascript">;(function($) {$.fn.extend({scrolltotop:function(speed){speed=typeof speed==="number"?speed:500;$("html,body").stop().animate({scrollTop:'0px'},speed);return this;}});})(jQuery);
<script type="text/javascript">$("#totop").click({$("body").scrolltotop(400);return false;})</script>
不知道这两个究竟孰优孰劣,不过灵活性上个人更倾向于后者。当然要区分不同的功能,像整个网站的"回到顶部"只有一个,用前者也更简便吧。
1 0
- 积跬步,聚小流------实例分析jquery开发插件两种方法的区别
- $.fn.extend的讲解, jQuery插件开发的两种方法
- jQuery插件开发的两种方法及$.fn.extend的详解
- jQuery插件开发的两种方法及$.fn.extend的详解
- jQuery插件开发的两种方法及$.fn.extend的详解
- jQuery插件开发的两种方法及$.fn.extend的详解
- jQuery插件开发的两种方法及$.fn.extend的详解
- jQuery插件开发的两种方法及$.fn.extend 定制列表
- 开发jQuery插件的方法
- jquery插件开发实例
- jQuery插件开发实例
- String的两种实例化方法的区别
- 一个简单的jQuery插件开发实例
- 积跬步,聚小流-------几种方法实现分割线
- 实例分析J2ME网络编程的两种方法
- 实例分析J2ME网络编程的两种方法
- jQuery 插件开发分析
- jQuery 插件开发分析
- FragmentTabHost的使用
- Java多线程 -- 线程的调度-让步
- PHP中使用参数化查询
- Connecting to the World with Aryaka
- Jsp页面引入天气预报
- 积跬步,聚小流------实例分析jquery开发插件两种方法的区别
- Stern-Brocot树 (生成0-1之间的所有真分数)
- 【数据结构】-冒泡排序法Java实现
- 全面认识UML类图元素
- MySQL索引背后的数据结构及BTree B+Tree算法原理
- 关于内部类
- ☆算法竞赛入门经典(第二版) 例题4-2 猜单词(Hangman Judge) UVa489
- Mybatis的输出映射
- UISlider滑块