zoukankan      html  css  js  c++  java
  • Jquery.extend()和jQuery.fn.extend(object);

     摘自: jquery $.fn $.fx是什么意思有什么用_jquery_脚本之家

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

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

    fn 是什么东西呢。查看jQuery代码,就不难发现。
    jQuery.fn = jQuery.prototype = {
       init: function( selector, context ) {//.... 
       //......
    };
    原来 jQuery.fn = jQuery.prototype.对prototype肯定不会陌生啦。
    虽然 javascript 没有明确的类的概念,但是用类来理解它,会更方便。
    jQuery便是一个封装得非常好的类,比如我们用 语句 $("#btn1") 会生成一个 jQuery类的实例。

    jQuery.extend(object); 

    jQuery.extend(object); 为jQuery类添加添加类方法,可以理解为添加静态方法。如:
    $.extend({
      add:function(a,b){return a+b;}
    });
    便为 jQuery 添加一个为 add 的 “静态方法”,之后便可以在引入 jQuery 的地方,使用这个方法了,
    $.add(3,4); //return 7
    jQuery.extend()方法除了可以用于扩展jQuery对象之外,还有一个强大的功能,就是用于扩展已有的Object对象。

    jQuery.extend(target,object1,.....[objectN])

    var settting = {validate:false , limit:5 ,name:"foo" };
    var options = {validate:true,name:"bar"};
    var newSetting = $.extends(setting,options);
    结果为:
    newSetting = {valiadate:true,limit:5,name:"bar"};

    jQuery.extends()方法经常用于设置插件的一系列默认参数,如下面对的代码所示

    function foo(options){
        options=jQuery.extend({
              name:"bar",
              length:5,
              dataType:"xml"/*默认参数*/
         },options );/*options 为传递的参数*/
    }    

    jQuery.fn.extend(object); 

    jQuery.fn.extend(object); 对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。
    比如我们要开发一个插件,做一个特殊的编辑框,当它被点击时,便alert 当前编辑框里的内容。可以这么做:

    $.fn.extend({
        alertWhileClick: function() {
            $(this).click(function() {
                alert($(this).val());
            });
        }
    });
    $("#input1").alertWhileClick();         

    页面上为:<input id="input1" type="text"/>
    $("#input1") 为一个jQuery实例,当它调用成员方法 alertWhileClick后,便实现了扩展,每次被点击时它会先弹出目前编辑里的内容。

    jquery(function(){})与(function(){}(jQuery)的区别
    jQuery(function(){});
    全写为
    jQuery(docunemt).ready(function(){
    });
    意义为在DOM加载完毕后执行ready()方法
    (funtion(){

    }(jQuery);
    实际执行()(para)匿名方法,只不过传递了jQuery对象。

    总结:jQuery(funtion(){});用于存放DOM对象的代码,执行其中代码时DOM对象已经存在。不可用于存放开发插件代码。因为jQuery对象没有得到传递,外部通过jQuery.method也调用不来其中方法。
    (funtion(){}(jQuery); 用于存放开发插件的代码,执行其中代码DOM不一定存在,直接自动执行DOM操作代码请小心使用

  • 相关阅读:
    C#里边的控件缩写大全(比较规范)
    jQuery的一些备忘
    有趣的史实~
    值类型 VS 引用类型~
    一道笔试题和UML思想 ~
    数据绑定以及Container.DataItem几种方式与用法分析
    用户控件与自定义控件的异同
    .NET资源站点汇总~
    C#中抽象类和接口的区别
    弹出窗口的一些东西(一),备忘~
  • 原文地址:https://www.cnblogs.com/alway-july/p/8609723.html
Copyright © 2011-2022 走看看