jquery插件基本格式

1.jquery中$是神马?$.fn又是神马?

稍微有jquery经验的都知道在jquery中$等价于jQuery,在控制台一试便知:

$ === jQuery
true

在jquery源码中也能找到下面代码

window.jQuery = window.$ = jQuery;

$.fn就是$的原型,,在源码中我们也能找到:

jQuery.fn = jQuery.prototype

插件的写法

一个常见的插件的基本样式应该如下(注释写的很详细,就不再一一赘述):

/*
插件名:
作者:
日期:等信息
*/

//一个匿名自执行函数,划分一个独立的作用域,不至于插件中的变量干扰jquery

;(function($){ //开始写上; 为防止代码压缩出错

//为jquery扩展<a href="https://www.f2er.com/tag/fangfa/" target="_blank" class="keywords">方法</a>,也就是<a href="https://www.f2er.com/tag/chajian/" target="_blank" class="keywords">插件</a>的主体
$.fn.extend({

    //<a href="https://www.f2er.com/tag/fangfa/" target="_blank" class="keywords">方法</a>名
    "method" : function(opts){
        //定义<a href="https://www.f2er.com/tag/chajian/" target="_blank" class="keywords">插件</a>的默认参数
        var default = {
            width : //定义默认宽度
            height : //定义默认高度
            speed : //定义默认速度
            //等等各种默认参数
        }
        //有些参数<a href="https://www.f2er.com/tag/yonghu/" target="_blank" class="keywords">用户</a>直接使用默认,有些参数<a href="https://www.f2er.com/tag/yonghu/" target="_blank" class="keywords">用户</a>要使用自己定义的
        //<a href="https://www.f2er.com/tag/zidingyi/" target="_blank" class="keywords">自定义</a>参数替换默认参数
        //var option = $.extend(default,opts); //为什么不用此行<a href="https://www.f2er.com/tag/daima/" target="_blank" class="keywords">代码</a>?为了保护默认参数
        //extend<a href="https://www.f2er.com/tag/fangfa/" target="_blank" class="keywords">方法</a>中opts会永久取代default,所以新加一个空对象{}来保存本次所使用的参数,下次使用default依然不变
        var option = $.extend({},default,opts);

        this.each(function(){ //用each处理选择器选中的一个或多个dom节点
            /*
                此处是<a href="https://www.f2er.com/tag/chajian/" target="_blank" class="keywords">插件</a>处理过程<a href="https://www.f2er.com/tag/daima/" target="_blank" class="keywords">代码</a>
            */
        });

        //最后别忘了保持jquery的链式操作(视情况而定)
        return this; //返回被选中的元素节点,以供后续操作。
    }

});

})(jQuery)//传入jQuery是为更快查找,避免沿作用域链往上层查找,提高性能

相关文章

这个问题和curl无法访问https资源是类似的,现在curl可以访问https资源,但是使用pecl安装扩展的时候不行...
在浏览器输入chrome://flags/回车,找到Omnibox UI Hide Steady-State URL Scheme and Trivial Subdoma...
方法一: 我们都知道Ubuntu有一个专门用来安装软件的工具apt,我们可以用它来全自动安装arm-linux-gcc。...
中文的windows下的cmd默认使用GBK的编码,敲代码时,页面使用的是UTF-8(65001),而powershell控制台默认...
提示错误: arm-linux-gcc:Command not found PATH里有/usr/oca/arm/bin,但是make的时候,就是找不到 a...
我在Graph API开发中用的最多的测试工具就是Graph Explore,这个是微软开发的网页版的Graph API的测试工...