• 编写jQuery插件


    Jquery的插件主要分为三类:
      1.封装方法插件
            封装方法插件在本质上来说,是一个对象级别的插件,这类插件首先通过jQuery选择器获取对象,并为对象添加方法,然后,将方法进行打包,封闭成一个插件,这种类型的插件编写简单,极易调用,也很方便地使用了jQuery中功能强大的选择器,因此,成为开发插件的首选.
      2.封装函数插件
            封闭函数插件是一个类级别的插件,这类插件最大的特点,就是可以直接给jQuery添加静态方法,并且可以将函数置于jQuery命名空间中,如最为觉的就是$.ajax(),$.trim()全局性函数,都是以内部插件的形式植入jQuery内核中.
      3.选择器插件:扩充自己喜欢的一些选择器。

     1 ;(function($){
     2     $.fn.name = function(options){  //各种属性、参数
     3        var options = $.extend(defaults, options);//定义参数
     4        this.each(function(){
     5            //插件实现代码
     6            return this;
     7        });
     8     };
     9 
    10     $.fn.highlight.defaults = {
    11         //默认属性参数    
    12     };
    13 })(jQuery);
    14 
    15 //调用
    16 $.fn.name.defaults.x = '';
    17 $('#id').name();

    (1)、“;(function($){    })(jQuery);”使用了匿名函数,表示在方法体内的”$”表示的就是”jquery”,为了有更好的兼容性,所以在前面添加一个分号
    ,这里的$符号是作为匿名函数的形参
    (2)、$.extend(defaults, options);表示的是如果options中的参数总是有值的话,那么options中的值将会代替defaults中的值。

    jQuery extend()和jQuery.fn.extend()两者调用方式不同:

           jQuery.extend(),一般由传入的全局函数来调用,主要是用来拓展个全局函数,如$.init(),$.ajax();

           jQuery.fn.extend(),一般由具体的实例对象来调用,可以用来拓展个选择器,例如$.fn.each();

    jQuery extend()和jQuery.fn.extend()两者的主要功能作用不同:

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

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

    //step01 定义JQuery的作用域
    (function ($) {
        //step03-a 插件的默认值属性
        var defaults = {
            prevId: 'prevBtn',
            prevText: 'Previous',
            nextId: 'nextBtn',
            nextText: 'Next'
            //……
        };
        //step06-a 在插件里定义方法
        var showLink = function (obj) {
            $(obj).append(function () { return "(" + $(obj).attr("href") + ")" });
        }
    
        //step02 插件的扩展方法名称
        $.fn.easySlider = function (options) {
            //step03-b 合并用户自定义属性,默认属性
            var options = $.extend(defaults, options);
            //step4 支持JQuery选择器
            //step5 支持链式调用
            return this.each(function () {
                //step06-b 在插件里定义方法
                showLink(this);
            });
        }
    })(jQuery);
  • 相关阅读:
    Ant Design Pro:Layout 组件——嵌套布局
    React实战之将数据库返回的时间转换为几分钟前、几小时前、几天前的形式。
    React实战之Ant Design—Upload上传_附件上传
    React实战之60s倒计时按钮(发送短信验证按钮)
    map方法到底会不会改变原始数组?
    【React】react开发vscode插件推荐
    【React】React 工程的 VS Code 插件及配置
    【React】react新特性实例详解(memo、lazy、suspense、hooks)
    数组常用slice和splice的区别
    【React】react-beautiful-dnd 实现组件拖拽
  • 原文地址:https://www.cnblogs.com/aaron911/p/7581814.html
Copyright © 2020-2023  润新知