• jQuery 插件开发


     1. 直接给jQuery 添加全局函数(市面上基本上不用这种方式)

    $.myAlert = function(){
      alert('我是通过调用插件弹出的警告框');
    }

    $.myAlert2 = function(str){
      alert(str);
    }

    2. 用extend()方法(市面上基本上不用这种方式)

    $.extend({
      myAlert:function(){
        alert('我是通过调用插件弹出的警告框');
      },
      myAlert2:function(str){
        alert(str);
      }
    })

    3.使用命名空间(市面上基本上不用这种方式)


    $.zxit = {
      myAlert:function(){
      alert('我是通过调用插件弹出的警告框');
    },
      myAlert2:function(str){
        alert(str);
      }
    }

    // 输出到页面

    $(function(){
      $.zxit.myAlert2('aaaa');
    })

    // 4. 类级插件开发(市面上基本上不用这种方式)


      var div = $('#div1');

      $.zxit = {

      centerDiv:function(obj){
        obj.css({
          'top':($(window).height()-div.height())/2,
          'left':($(window).width()-div.width())/2,
          'position':'absolute'
        });

        return obj; //注意:一定要返回,才能使用jQuery链式操作

        }
      }

    $.zxit.centerDiv(div).css('background','red');

     推荐!!!!!.对象级插件开发(模板)

    ;(function($){

      $.fn.tab = function(options){

        //各种参数,各种属性
        var defaults = {

        }

        // 合并参数
        var options = $.extend(defaults, options);


      // 实现功能的代码
      this.each(function(){

      })

      // 返回this, 实现jQuery链式操作

      return this;
     }

    })(jQuery);

    注意: 参数后面是对象形式,不要直接赋值(‘=’),用分号隔开参数,小心犯错,参考下面代码。

     

    ================= .利用jQuery 对象级插件模板,开发tab插件 =================

    ;(function($){

    $.fn.tab = function(options){

    // 各种参数,各种属性
    var defaults = {
      li_active : 'active', // tab 标题
      item_active : 'active', // tab 内容
      title_node :'.title li', // tab 标题节点
      item_node :'.cont .item', // tab 内容节点
      event_type : 'mouseover' // tab 触发事件
    }

    // 合并options
    options = $.extend(defaults, options);

    // 实现功能代码
    this.each(function(){
      var _this = $(this);
      _this.find(options.title_node).bind(options.event_type,function(){
        $(this).addClass(options.li_active).siblings().removeClass(options.li_active);
        _this.find(options.item_node).eq($(this).index()).addClass(options.item_active).siblings().removeClass(options.item_active);
      })

    })

      // 返回this, 实现jQuery链式操作
      return this;

    }

    })(jQuery);

    //输出到页面

    $('.tab').tab({
      event_type:'click'
    }).css('background','red');

  • 相关阅读:
    判别式模型与生成式模型
    C#和Excel进行报表开发
    C# TreeView序列化、串行化、反序列化
    磁盘碎片整理后电脑盘损坏的修复过程
    用C#实现CS模式下软件自动在线升级
    win10家庭版更改为企业版和激活
    [原创]前端页面检查神器google chrome lighthouse
    [原创] PDMReaderSetup下载
    SpringBoot定时任务@EnableScheduling
    【spring bean】@Resource注解的自动注入策略 , 以 项目中注入多个线程池的Bean为例 附加自定义SpringBeanSupport
  • 原文地址:https://www.cnblogs.com/lanren2017/p/7247904.html
Copyright © 2020-2023  润新知