jQuery插件制作方法详解

简介:   jQuery插件制作方法详解   jquery插件给我的感觉清一色的清洁,简单。如Jtip,要使用它的功能,只需要在你的元素的class上加 上Jtip,并引入jtip.js及其样式即可以了。
 
 

jQuery插件制作方法详解

 

jquery插件给我的感觉清一色的清洁,简单。如Jtip,要使用它的功能,只需要在你的元素的class上加 上Jtip,并引入jtip.js及其样式即可以了。其他事情插件全包。我喜欢jquery的一个重要原因是发现她已经有了很多很好,很精彩的插件。写一 个自己的jQuery插件是非常容易的,如果你按照下面的原则来做,可以让其他人也容易地结合使用你的插件.

 

 

jquery插件给我的感觉清一色的清洁,简单。如Jtip,要使用它的功能,只需要在你的元素的class上加上Jtip,并引入jtip.js及其样式即可以了。其他事情插件全包。我喜欢jquery的一个重要原因是发现她已经有了很多很好,很精彩的插件。写一个自己的jQuery插件是非常容易的,如果你按照下面的原则来做,可以让其他人也容易地结合使用你的插件.

  • 为你的插件取一个名字,在这个例子里面我们叫它"foobar". 

    创建一个像这样的文件:jquery.[yourpluginname].js,比如我们创建一个jquery.foobar.js 

    创建一个或更多的插件方法,使用继承jQuery对象的方式,如:

  • jQuery.fn.foobar = function() {
    // do something
    };
  • 可选的:创建一个用于帮助说明的函数,如:

    jQuery.fooBar = {
    height: 5,
    calculateBar = function() { ... },
    checkDependencies = function() { ... }
    };
    你现在可以在你的插件中使用这些帮助函数了:
    jQuery.fn.foobar = function() {
    // do something
    jQuery.foobar.checkDependencies(value);
    // do something else
    };
  • 可选的l:创建一个默认的初始参数配置,这些配置也可以由用户自行设定,如:

    jQuery.fn.foobar = function(options) {
    var settings = {
    value: 5,
    name: "pete",
    bar: 655
    };
    if(options) {
    jQuery.extend(settings, options);
    }
    };
    现在可以无需做任何配置地使用插件了,默认的参数在此时生效:
    $("...").foobar();
    或者加入这些参数定义:
    $("...").foobar({
    value: 123,
    bar: 9
    });
    如果你release你的插件, 你还应该提供一些例子和文档,大部分的插件都具备这些良好的参考文档.现在你应该有了写一个插件的基础,让我们试着用这些知识写一个自己的插件.很多人试着控制所有的radio或者checkbox是否被选中,比如:
    $("input[@type='checkbox']").each(function() {
    this.checked = true;
    // or, to uncheck
    this.checked = false;
    // or, to toggle
    this.checked = !this.checked;
    });
    无论何时候,当你的代码出现each时,你应该重写上面的代码来构造一个插件,很直接地:
    $.fn.check = function() {
    return this.each(function() {
    this.checked = true;
    });
    };
    这个插件现在可以这样用:
    $("input[@type='checkbox']").check();
    现在你应该还可以写出uncheck()和toggleCheck()了.但是先停一下,让我们的插件接收一些参数.
    $.fn.check = function(mode) {
    var mode = mode || 'on'; // if mode is undefined, use 'on' as default
    return this.each(function() {
    switch(mode) {
    case 'on':
    this.checked = true;
    break;
    case 'off':
    this.checked = false;
    break;
    case 'toggle':
    this.checked = !this.checked;
    break;
    }
    });
    };
    这里我们设置了默认的参数,所以将"on"参数省略也是可以的,当然也可以加上"on","off", 或 "toggle",如:
    $("input[@type='checkbox']").check();
    $("input[@type='checkbox']").check('on');
    $("input[@type='checkbox']").check('off');
    $("input[@type='checkbox']").check('toggle');
    如果有多于一个的 参数设置会稍稍有点复杂,在使用时如果只想设置第二个参数,则要在第一个参数位置写入null.从上一章的tablesorter插件用法我们可以看到, 既可以省略所有参数来使用或者通过一个 key/value 对来重新设置每个参数.作为一个练习,你可以试着将 第四章 的功能重写为一个插件.这个插 件的骨架应该是像这样的:
    $.fn.rateMe = function(options) {
    var container = this; // instead of selecting a static container with $("#rating"), we now use the jQuery context
     
    var settings = {
    url: "rate.php"
    // put more defaults here
    // remember to put a comma (",") after each pair, but not after the last one!
    };
     
    if(options) { // check if options are present before extending the settings
    $.extend(settings, options);
    }
     
    // ...
    // rest of the code
    // ...
     
    return this; // if possible, return "this" to not break the chain
    });
相关文章
|
2月前
|
JavaScript CDN
jQuery方法小记
jQuery方法小记
29 0
|
2月前
|
JavaScript
jQuery追加节点方法 和height方法与width方法
jQuery追加节点方法 和height方法与width方法
|
2月前
|
JavaScript 前端开发
调用jQuery的animate()方法无法移动的问题
调用jQuery的animate()方法无法移动的问题
|
2月前
|
JavaScript 前端开发 UED
jQuery 自动刷新页面但不闪烁的实现方法
jQuery 自动刷新页面但不闪烁的实现方法
|
2月前
|
JavaScript
jQuery图片延迟加载插件jQuery.lazyload
jQuery图片延迟加载插件jQuery.lazyload
|
2月前
|
JavaScript Serverless
jquery attr()方法
jquery attr()方法
21 0
|
20天前
|
设计模式 JavaScript 前端开发
必知的技术知识:jQuery插件开发精品教程,让你的jQuery提升一个台阶
必知的技术知识:jQuery插件开发精品教程,让你的jQuery提升一个台阶
18 1
|
1月前
|
JSON JavaScript 前端开发
jQuery获取json文件的方法
jQuery获取json文件的方法
18 2
|
22天前
|
JavaScript 程序员
老程序员分享:jquery方法总结
老程序员分享:jquery方法总结
14 0
|
22天前
|
JavaScript PHP Perl
一篇文章讲明白jQuery插件之jqueryeditableplugin
一篇文章讲明白jQuery插件之jqueryeditableplugin