zoukankan      html  css  js  c++  java
  • jquery插件开发快速入门

    1、添加jQuery对象方法
    添加jQuery对象方法:jQuery.prototype.myMethod。

    在jQuery源码中有一句:jQuery.fn = jQuery.prototype,也就是给jQuery的prototype对象取了个别名,

    所以 jQuery.prototype.myMethod 等价于 jQuery.fn.myMethod 等价于 $.fn.myMethod。

    添加全局函数需要用新方法扩展jQuery对象——$.fn:

    $.fn.myMethod = function(){}  

    调用:$('div').myMethod();

    2、方法环境
    this引用的是当前的jQuery对象。注意不是DOM对象。

    $.fn.myMethod = function(){  
        this.hasClass(class_name);  
    }  

    这样定义置灰检查最先匹配的元素。要是有多个元素,应该用“隐式迭代”。

    $.fn.myMethod = function(){  
      this.each(function(){  
        this.hasClass(class_name); // 报错  
        $(this).hasClass(class_name); //注意each方法内this引用的是一个DOM元素。  
      })  
    }  

    3、连缀

    $.fn.myMethod = function(){  
      return this.each(function(){} // 返回jQuery对象  
    }  

    4、方法参数
    4.1 简单参数

    $.fn.myMethod = function(hash_obj){ // 参数通常是hash类型  
      return this.each(function(){}  
    }  

    4.2 默认参数

    $.fn.myMethod = function(opts){ // 参数通常是hash类型  
      var defaults = {  
        zIndex:10  
        ,opacity: 0.8  
      }  
      var options = $.extend(defaults, opts); // opts 会覆盖defaults的项,defaults的值改变  
      return this.each(function(){}  
    }  

    5、回调函数

    $.fn.myMethod = function(opts){ // 参数通常是hash类型  
      var defaults = {  
        zIndex:10  
        ,opacity: 0.8  
        ,slice_offset: function(){  
           return { x:i, y:2*i }  
         }  
      }  
      var options = $.extend(defaults, opts); // opts 会覆盖defaults的项,defaults的值改变  
      return this.each(function(){}  
    }  
  • 相关阅读:
    nextSibling VS nextElementSibling
    线程实现连续启动停,并在某一时间段内运行
    线程:安全终止与重启
    监控知识体系
    后台服务变慢解决方案
    Java泛型类型擦除以及类型擦除带来的问题
    常见的 CSRF、XSS、sql注入、DDOS流量攻击
    Spring对象类型——单例和多例
    一次线上OOM过程的排查
    深入浅出理解基于 Kafka 和 ZooKeeper 的分布式消息队列
  • 原文地址:https://www.cnblogs.com/jiangxiaobo/p/6510203.html
Copyright © 2011-2022 走看看