`

Jquery 插件开发的一点知识

js 
阅读更多
//根据《jQuery高级编程》的描述,jQuery插件开发方式主要有三种:

//(1)通过$.extend()来扩展jQuery
//(2)通过$.fn 向jQuery添加新的方法
//(3)通过$.widget()应用jQuery UI的部件工厂方式创建

//通常我们使用第二种方法来进行简单插件开发,说简单是相对于第三种方式。
//第三种方式是用来开发更高级jQuery部件的,该模式开发出来的部件带有很多jQuery内建的特性,
//比如插件的状态信息自动保存,各种关于插件的常用方法等,非常贴心,这里不细说。

//而第一种方式又太简单,仅仅是在jQuery命名空间或者理解成jQuery身上添加了一个静态方法而以。
//所以我们调用通过$.extend()添加的函数时
//直接通过$符号调用($.myfunction())
//而不需要选中DOM元素($('#example').myfunction())。请看下面的例子。

$.extend({
    sayHello:function(name){
        console.log('Hello,' + (name ? name : 'Dude') + '!');
    }
});

$.extend({
   log:function(message){
       var now = new Date(),
           y = now.getFullYear(),
           m = now.getMonth() + 1,// jquery 中月份是从 0 开始的
           d = now.getDay(),
           h = now.getHours(),
           m = now.getMinutes();
           s = now.getSeconds(),
           time = y + '/' + m + '/' + d + '/' + h + ':' + m + ':' + s;
           console.log(time + ' My App: ' + message);
   }
});


$.fn.myPlugin = function(options){
    var defaults = {
            'color':'red',
            'fontSize':'12px'
    };
    //当给extend方法传递一个以上的参数时,它会将所有参数对象合并到第一个里。
    //同时,如果对象中有同名属性时,合并的时候后面的会覆盖前面的。
    //利用这一点,我们可以在插件里定义一个保存插件参数默认值的对象,
    //同时将接收来的参数对象合并到默认对象上,
    //最后就实现了用户指定了值的参数使用指定的值,
    //未指定的参数使用插件默认值。
    
   // var settings = $.extend(defaults,options);
    
    //一个好的做法是将一个新的空对象做为$.extend的第一个参数,
    //defaults和用户传递的参数对象紧随其后,
    //这样做的好处是所有值被合并到这个空对象上,保护了插件里面的默认值。
    var settings = $.extend({},defaults, options);
    
    return this.css({
        'color':settings.color,
        'fontSize':settings.fontSize
    });
};

//面向对象的插件开发

//定义Beautifier的构造函数
var Beautifier = function(ele,opt){
    this.$element = ele,
    this.defaults = {
            'color':'red',
            'fontSize':'12px',
            'textDecoration':'none'
    },
    this.options = $.extend({},defaults,opt);
};
//定义Beautifier的方法
Beautifier.prototype = {
        beautify:function(){
            return this.$ellement.css({
                'color':this.options.color,
                'fontSize':this.options.fontSize,
                'textDecoration':this.options.textDecoration
            });
        }
};
//在插件中使用Beautifier对象
$.fn.beautifyPlugin = function(options){
    var beautifier = new Beautifier(this,options);
    return beautifier.beautify();
};

//一个好的做法是始终用自调用匿名函数包裹你的代码,
//这样就可以完全放心,安全地将它用于任何地方了,绝对没有冲突。
//我们知道JavaScript中无法用花括号方便地创建作用域,
//但函数却可以形成一个作用域,域内的代码是无法被外界访问的。
//如果我们将自己的代码放入一个函数中,那么就不会污染全局命名空间,
//同时不会和别的代码冲突。
;(function($, window, document,undefined) {
    //定义Beautifier的构造函数
    var Beautifier = function(ele, opt) {
        this.$element = ele,
        this.defaults = {
            'color': 'red',
            'fontSize': '12px',
            'textDecoration': 'none'
        },
        this.options = $.extend({}, this.defaults, opt);
    };
    //定义Beautifier的方法
    Beautifier.prototype = {
        beautify: function() {
            return this.$element.css({
                'color': this.options.color,
                'fontSize': this.options.fontSize,
                'textDecoration': this.options.textDecoration
            });
        }
    };
    //在插件中使用Beautifier对象
    $.fn.myPlugin = function(options) {
        //创建Beautifier的实体
        var beautifier = new Beautifier(this, options);
        //调用其方法
        return beautifier.beautify();
    };
})(jQuery, window, document);

//关于变量定义及命名

//现在谈谈关于变量及方法等的命名,没有硬性规定,但为了规范,遵循一些约定还是很有必要的。

//变量定义:好的做法是把将要使用的变量名用一个var关键字一并定义在代码开头,变量名间用逗号隔开。原因有二:

//一是便于理解,知道下面的代码会用到哪些变量,同时代码显得整洁且有规律,也方便管理,变量定义与逻辑代码分开;
//二是因为JavaScript中所有变量及函数名会自动提升,也称之为JavaScript的Hoist特性,即使你将变量的定义穿插在逻辑代码中,在代码解析运行期间,这些变量的声明还是被提升到了当前作用域最顶端的,所以我们将变量定义在一个作用域的开头是更符合逻辑的一种做法。当然,再次说明这只是一种约定,不是必需的。
//变量及函数命名 一般使用驼峰命名法(CamelCase),即首个单词的首字母小写,后面单词首字母大写,比如resultArray,requestAnimationFrame。
//对于常量,所有字母采用大写,多个单词用下划线隔开,比如WIDTH=100,BRUSH_COLOR='#00ff00'。
//当变量是jQuery类型时,建议以$开头,开始会不习惯,但经常用了之后会感觉很方便,因为可以很方便地将它与普通变量区别开来,
//一看到以$开头我们就知道它是jQuery类型可以直接在其身上调用jQuery相关的方法,比如var $element=$('a'); 之后就可以在后面的代码中很方便地使用它,并且与其他变量容易区分开来。

//引号的使用:既然都扯了这些与插件主题无关的了,这里再多说一句,
//一般HTML代码里面使用双引号,而在JavaScript中多用单引号,比如下面代码所示:

var name = 'Wayou';
document.getElementById('example').innerHTML = '< a href="http: //wayouliu.duapp.com/">'+name+'</a>'; //href=".." HTML中保持双引号,JavaScript中保持单引号

//一方面,HTML代码中本来就使用的是双引号,
//另一方面,在JavaScript中引号中还需要引号的时候,
//要求我们单双引号间隔着写才是合法的语句,除非你使用转意符那也是可以的。
//再者,坚持这样的统一可以保持代码风格的一致,不会出现这里字符串用双引号包着,另外的地方就在用单引号。

 

分享到:
评论

相关推荐

    jQuery插件开发学习

    下面我们将详细探讨jQuery插件开发的相关知识点。 首先,了解jQuery的核心概念是至关重要的。jQuery通过简洁的语法封装了大量JavaScript的常用功能,如选择器(用于选取DOM元素)、DOM操作(添加、删除或修改元素)...

    jquery 插件开发 pdf

    jQuery插件开发是扩展这个库功能的一种常见方式,使得开发者能够根据项目需求创建自定义功能。以下是对jQuery插件开发的详细讲解: 1. **插件基础** - jQuery插件通常是通过扩展jQuery对象的原型链来实现的,这...

    jQuery插件开发详解

    《jQuery插件开发详解》 在Web开发领域,jQuery是一个广泛应用的JavaScript库,它极大地简化了DOM操作、事件处理和动画制作。对于开发者而言,掌握jQuery插件的开发技巧是提升工作效率的重要一环。本篇将深入探讨...

    jQuery插件开发的五种形态小结

    总结来说,jQuery插件开发中的五种形态小结通过一系列的示例和说明,为开发者展示了如何创建一个高效、可维护的插件。这五个形态涉及到了代码的独立性、链式操作、插件的可配置性、生命周期的管理、无冲突处理以及...

    jquery插件开发文档

    根据提供的文档内容,以下是一些关于jQuery插件开发的关键知识点: 1. 基本插件结构 在编写jQuery插件时,首先要了解其基本结构。开发者通常往`jquery.fn`对象中添加一个特定的函数对象,从而创建一个新的插件。...

    jquery 插件开发

    以上就是关于jquery插件开发的一些基础知识。总的来说,jquery插件开发是一个非常强大且灵活的过程,通过灵活使用$.extend()、$.fn以及$.widget()等方法,我们可以轻松地扩展或者创建新的jQuery功能或者部件。只要...

    通用 JQuery 插件 开发

    **通用JQuery插件开发详解** 在Web开发领域,jQuery是一个广泛使用的JavaScript库,它极大地简化了DOM操作、事件处理、动画制作以及Ajax交互。由于其简洁的API和丰富的功能,jQuery成为创建交互式网页的强大工具。...

    jQuery插件开发详细教程

    jQuery插件开发是一项能够极大提升前端开发效率和代码可复用性的技术。在学习开发jQuery插件之前,需要先了解一些基础概念和最佳实践,以及避免在开发过程中的一些常见陷阱。 首先,我们需要掌握什么是jQuery插件。...

    跟我一起学JQuery插件开发

    以上就是根据给定文件内容的JQuery插件开发的知识点总结。理解这些知识将有助于你开始编写自己的JQuery插件。希望这些信息对你有所帮助,如果你对JQuery插件开发有更深入的兴趣,推荐你阅读更多的专业书籍和文档,...

    JQuery插件开发 + 插件

    下面我们将深入探讨jQuery插件开发的相关知识点。 一、jQuery插件基础 1. 插件定义:jQuery插件是扩展jQuery功能的小型代码模块,它们允许开发者将自定义的行为和功能添加到网页中。 2. 创建插件的基本结构: ```...

    老司机带你解读jQuery插件开发流程

    在学习jQuery插件开发之前,需要了解jQuery库本身的功能和组成。jQuery是一个快速、小巧且功能丰富的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互等操作。在进行jQuery插件开发时,尤其需要关注...

    jquery插件开发快速入门

    ### jQuery插件开发快速入门详解 #### 一、概述 jQuery 是一款轻量级的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画以及 Ajax 交互等操作。由于其简单易用的特点,jQuery 成为了最受欢迎的前端库之一...

    jquery插件编写指南

    #### 八、插件开发技巧:闭包 - **目的**:保护内部状态不被外部访问,同时提供必要的接口。 - **实现**:在函数中定义另一个函数,并将必要的变量和函数封闭在这个内部函数的作用域内。 - **示例**: ```...

    jQuery插件开发全解析.pdf

    ### jQuery插件开发全解析知识点 #### 1. jQuery插件开发概述 在jQuery插件开发中,开发者可以创建两种类型的插件:类级别的插件和对象级别的插件。类级别的插件允许开发者为jQuery对象添加新的全局函数,类似于在...

    jQuery 插件开发详解.docx

    《jQuery 插件开发详解》 jQuery 插件开发是一个让...通过这样的实践,开发者不仅可以掌握jQuery插件开发,还能锻炼解决问题和创新的能力。记住,jQuery插件开发不仅仅是技术的堆砌,更是对用户体验和代码质量的追求。

    Dreamweaver 开发jQuery插件

    总的来说,Dreamweaver结合jQuery插件开发,为Web开发者提供了一个高效、直观的工作环境,使他们能够在熟悉的环境中创建功能丰富的交互式网页。通过不断学习和实践,你将能够充分利用这两个工具,提升自己的Web开发...

Global site tag (gtag.js) - Google Analytics