jquery $.fn $.fx $.extend

  最近在看一些插件源码的时候发现  $.fn.XX  看的很郁闷 不知道是什么意思 就去网上找了找资料。大概了解了下。

    对于$.fx  就找到这一句话    $.fx是指jquery的特效。    如果使用显示、滑动、淡入淡出、动画等。 

  后面再把详细的补上吧 先看 $.fn。

      $.fn 其实是 jQuery提供了2个供用户扩展的‘基类’ - $.extend和$.fn.extend.  通常使用extend方法扩展 当然不用extend 也是可以的 如下代码

        $.fn.alertClick = function() {
            $(this).click(function() {
                alert($(this).val());
            });
        }

     $("#inputID").alertClick();

 

   $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。           

  $.extend(object); 为扩展jQuery类本身.为类添加新的方法。

  $.fn.extend(object);给jQuery对象添加方法。

 

         看到这里可能有点不好理解 jQuery 中的 类 与 对象 到底是怎么理解的。

   因为在 javascript 没有明确的类的概念,但是用类来理解它,会更方便。

 

        jQuery便是一个封装得非常好的类,而 我们用 语句 $("#btn1") 会生成一个 jQuery类的实例。 相当于实例化了一个对象  这样说 就能理解

        $.extend(object);            $.fn.extend(object); 了吧 哈。

 

        jQuery.extend(object); 为jQuery类 添加类方法,可以理解为添加静态方法 ,

          当我们C# 中定义一个类,其中定义有一个 静态方法的时候,就可以直接   类名.静态方法名 如下代码

 1   //定义一个 $.extend 的方法
 2         $.extend({
 3             add: function(a, b) { 
 4                 return a + b;
 5             }
 6         });
 7 
 8 
 9         //调用
10         $(document).ready(function() { //本人习惯这样写了
11             $("#btnShow").click(function() {
12                  var sum = jQuery.add(4, 5);
13                 alert(sum);
14 
15             });
16 
17       });
18 
19 <input value="弹出" class="but" type="button" id="btnShow" />
20 <HTML>daima

 可以看出我是直接jQuery.add(4, 5); 调用 返回接收 9 。

 

jQuery.fn.extend(object); 对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。

上面说的  jQuery是一个封装得非常好的类, $("#input1") 写法 是 jQuery类的实例。 那么 要想调用jQuery.fn.extend(object);  就要  $("#input1").alertClick(); 如下代码:

 

1   $.fn.extend({
2             alertClick: function() {
3                 $(this).click(function() {
4                     alert($(this).val());
5                 });
6             }
7         });
8 
9  $("#input1").alertClick();

 

 $.jp ..//定义全局变量

 

  $.jp = {
        kk: function(ks) {
            alert(ks);
        },
        hash: {} 
}

或者

  $.jp =function(ks) {
            alert(ks);
   }

都可以直接调用 

$.jp.kk("123");
 $.jp("123");

 

 

    

 

 

 

 

 

 

 

posted @ 2013-04-22 17:57  dragon.net  阅读(274)  评论(0编辑  收藏  举报