zoukankan      html  css  js  c++  java
  • jQuery插件开发学习笔记 拓荒者

      今天想了解一下jQuery的插件开发,于是google了一下,列在前面的两篇文章都很不错,jQuery插件开发全解析 更是将插件开发的方方面面细致入微的进行了讲解,并提供了PDF进行下载。笔者今天详细的阅读了这篇文章并记录了一些笔记。

      1.类级别的插件开发

      我是这样理解的:jQuery是类,$是jQuery的别名,$('selector')为jQuery对象

      这种插件类似为jQuery类添加静态的方法,然后我们就可以像在C#中调用静态方法一样使用插件。添加静态方法的途径有两种:

    jQuery.alert = function () {
    alert("这是一个jQuery的提示框");
    }

    jQuery.confirm = function () {
    confirm("这是一个JQuery的提示框");
    }

      相应的调用:$.alert(); $.confirm();

      另一种方法的代码如下:

    jQuery.extend({
    alert: function () { alert("这是一个jQuery的提示框"); },
    confirm: function () { confirm("这是一个JQuery的提示框"); }
    });

      这种是通过jQuery提供的extend方法进行功能的扩展,调用的方法同上。

      另外,为了避免与其它jQuery插件的冲突,我们可以添加自己的命名空间:

    jQuery.sample = {
    alert: function () { alert("这是一个jQuery的提示框"); },
    confirm: function () { confirm("这是一个JQuery的提示框"); }
    };

      添加了命名空间后的调用:$.sample.alert(); $.sample.confirm();

      

      2.对象级别的插件开发

    /*

    这种写法的说明:
    var fn = function(para){
    //code...
    }
    fn(jQuery);

    先定义一个方法,再立即执行这个方法
    这种写法的好处:我们在写jQuery插件时,也可以使用$这个别名,而不会与prototype引起冲突.

    */
    (function ($) {
    $.fn.extend({
    hilight: function (options) {
    var opts = $.extend($.fn.hilight.defauts, options);
    this.css("color", opts.color).css("background-color", opts.bgcolor);
    }
    });

    $.fn.hilight.defauts = {
    color: 'red',
    bgcolor: 'white'
    };
    })(jQuery);

      jQuery推荐这种写法,好处就在上面的注释部分。

      在这段代码中我们将defaults暴漏出来,允许用户直接访问并设置defaults值,这样做的好处,是只需要在一处设置默认值以后,别处都可以直接使用,而不用每次传递参数。当然,我们仍然可以传递参数,以改变手工设置的默认值。

      我们还可以通过暴漏defaults的相同方法来暴漏一些可供别人扩展的方法;如果需要将一个方法或属性私有化,只需要在闭包中定义,而不要提供相应的引用。

      3.总结

      jQuery为开发插件提拱了两个方法,分别是:

        jQuery.fn.extend(object); 给jQuery对象添加方法。fn 是什么东西呢?原来 jQuery.fn = jQuery.prototype,jQuery.fn.extend(object)是对jQuery.prototype进行的扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。

        jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。可以理解为jQuery添加静态方法。

      

      最后提供相应的pdf下载:《jQuery插件开发全解析》

      

    2021年9月 北京、西安两地,高薪诚聘 .NET工程师,请私信联系!
    如果认为此文对您有帮助,别忘了支持一下哦!
    声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。转载时请在文章页面明显位置给出原文链接。
  • 相关阅读:
    ios开发之-- tableview/collectionview获取当前点击的cell
    使用 urllib 进行身份验证
    关于 Handler 与 opener
    使用 urllib 构造请求对象
    使用 urllib 发送请求
    urllib 基础模块
    urllib 简介
    网络爬虫的分析算法
    网络爬虫的更新策略
    网络爬虫的爬行策略
  • 原文地址:https://www.cnblogs.com/youring2/p/2433483.html
Copyright © 2011-2022 走看看