jQuery起点教程之插件制作(7)

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
    });

时间: 2024-10-01 12:41:51

jQuery起点教程之插件制作(7)的相关文章

jQuery起点教程之有序化插件实例(6)

jQuery起点教程之有序化插件实例是一篇使用jquery的tablesorter插件来实现一些功能效果的教程,大家可以认真学习一下.Sort me将我有序化:使用tablesorter插件进行表格排序. 这个表格排序插件能让我们在客户端按某一列进行排序,引入jQuery和这个插件的js文件,然后告诉插件你想要哪个表格拥有排序功能. 要测试这个例子,先在starterkit.html中加上像下面这一行的代码: <script src="lib/jquery.tablesorter.js&q

jQuery拖拽排序插件制作拖拽排序效果(附源码下载)_jquery

使用jquery拖拽排序插件制作拖拽排序效果是一款非常实用的鼠标拖拽布局插件.效果图如下: 效果演示         源码下载 html代码: <h1>水平拖拽</h1> <div class="demo"> <div class="item item1"><span>1</span></div> <div class="item item2"><

jQuery起点教程之使用选择器和事件(3)

jQuery起点教程之使用选择器和事件 jQuery提供两种方式来选择html的elements: 第一种是用CSS和Xpath选择器联合起来形成一个字符串来传送到jQuery的构造器(如:$("div > ul a")): 第二种是用jQuery对象的几个methods(方法).这两种方式还可以联合起来混合使用. 为了测试这些选择器,我们来试着在我们starterkit.html中选择并修改第一个ordered list. 一开始,我们需要选择这个list本身,这个list有一

jQuery起点教程之安装(1)

jQuery入门指南教程这个指南是一个对jQuery库的说明,要求读者了解HTML(DOM)和CSS的一些常识.它包括了一个简单的Hello World的例子,选择器和事件基础,AJAX.FX的用法,以及如何制作jQuery的插件. 这个指南包括了很多代码,你可以copy它们,并试着修改它们,看看产生的效果. 内容提要 安装 Hello jQuery Find me:使用选择器和事件 Rate me:使用AJAX Animate me(让我生动起来):使用FX Sort me(将我有序化):使用

jQuery起点教程之使用AJAX(4)

在这一部分我们写了一个小小的AJAX应用,它能够rate一些东西(译Keel注:就是对某些东西投票),就像在youtube.com上面看到的一样. 首先我们需要一些服务器端代码,这个例子中用到了一个PHP文件,读取rating参数然后返回rating总数和平均数.看一下rate.php代码. 虽然这些例子也可以不使用AJAX来实现,但显示我们不会那么做,我们用jQuery生成一个DIV容器,ID是"rating". $(document).ready(function() {     

jQuery插件制作之全局函数用法实例_jquery

本文实例讲述了jQuery插件制作之全局函数用法.分享给大家供大家参考.具体分析如下: 1.添加新的全局函数 所谓的全局函数,实际上就是jQuery对象的方法,但从实践的角度上看,他们是位于jQuery命名空间内部的函数 (1)添加一个函数,只需要将新函数指定为jQuery对象的一个属性. jQuery.five =function(){ alert("直接继承方式不一样"); } 调用: 复制代码 代码如下: $.five(); (2)添加多个函数 jQuery.five =func

jQuery插件制作的实例教程_jquery

一.jQuery插件的类型 1. jQuery方法 很大一部分的jQuery插件都是这种类型,由于此类插件是将对象方法封装起来,在jQuery选择器获取jQuery对象过程中进行操作,从而发挥jQuery强大的选择器优势. 2. 全局函数法 可以把自定义的功能函数独立附加到jQuery命名空间下,从而作为jQuery作用域下的一个公共函数使用. 但全局函数没有被绑定到jQuery对象上,故不能在选择器获取的jQuery对象上调用.需要通过jQuery.fn()或$.fn()方式进行引用. 3.

jQuery中文入门指南,翻译加实例,jQuery的起点教程_基础知识

jQuery中文入门指南,翻译加实例,jQuery的起点教程 中文版译者:Keel 此文以实例为基础一步步说明了jQuery的工作方式.现以中文翻译(添加我的补充说明)如下.如有相关意见或建议请麻烦到我的 BLOG 写个回复或者 EMAIL 告知. 英文原版:http://jquery.bassistance.de/jquery-getting-started.html ,感谢原文作者 Jörn Zaefferer 本文发布已征求原作者同意. 另外我认为在学习过程中,有两个API文档你要打开随时

基础的WordPress插件制作教程_php实例

插件制作准备工作 首先我们在\wp-content\plugins目录下添加一个文件夹叫做"My-Mood",在文件夹中添加一个叫做index.php的主文件,这个是插件的主文件,文件的开始需要一些命名的格式:如下面的代码 <!--?php <br ?--> /* Plugin Name: My Mood Plugin URI: http://www.aips.me Description: 一个心情发布插件 Version: 1.0 Author: 周良博客 Aut