jQuery插件制作方法详解

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

jQuery插件制作方法详解

时间: 2024-12-28 01:40:09

jQuery插件制作方法详解的相关文章

产品流程图的制作方法详解

一个产品设计之初,必先从流程图做起,流程图可以用来表达产品各式各样的流程,今天我们就来聊聊Axure里面流程图的做法: 流程图组件 在元件区面板上点击下拉选择流程图,既可看到流程图中需要用的的各种组件的形状,代表不同的流程步骤及含义. 流程图组件也可以直接从组件选择面板中拖拉出来,然后通过工具列或快捷菜单来编辑样式与属性,如果要改变流程形状的话,可以按鼠标右键并选择“编辑流程形状”——子选单中的项目来设置. 若要把两个形状连接的话,需要先从软件左上角选择连接器模式,然后在形状的连点部位用鼠标拖拽

jQuery插件编写步骤详解

如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui 内置web项目里了.至于使用jquery好处这里就不再赘述了,用过的都知道.今天我们来讨论下jquery的插件机制,jquery有着成千上万的第 三方插件,有时我们写好了一个独立的功能,也想将其与jquery结合起来,可以用jquery链式调用,这就要扩展jquery,写成插件形式了,如下 面就是一个简单扩展Jquery对象的demo: //sample:扩展jquery对象的方法,bold(

jQuery插件autoComplete使用详解

安装/需要引入的文件 <script type="text/javascript" src="../js/jquery-1.8.3.min.js.js"></script> <link href="../plug/autoComplete/styles.css" type="text/css" rel="stylesheet" /><script type=&quo

JQuery插件jqModal应用详解(十二)

JqModal 是jQuery的一个插件,用来在web浏览器中显示自定义通告,而且它为通用窗口框架奠定了基础. 1. 多模型支持 2. 支持拖拽和重定义大小 3, 支持远程加载窗口内容(ajax和iframes) 下载: http://dev.iceburg.net/jquery/jqModal/#examples 使用的方法: step1:添加js与css<link href="css/jqModal.css" rel="stylesheet" type=&

jQuery插件- Autocomplete应用详解

项目中有时会用到自动补全查询,就像Google搜索框.淘宝商品搜索功能,输入汉字或字母,则以该汉字或字母开头的相关条目会显示出来供用户选择, autocomplete插件就是完成这样的功能. autocomplete官网 : http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/ (可下载jQuery autocomplete插件). 淘宝商品搜索功能 效果: 下面来使用 autocomplete插件来实现类似效果. 1.

jQuery ajax - ajax() 方法详解

一些代码通过jQuery来做ajax异步提交. //验证昵称是否存在 function checkNickNameIsExist(){ var nickName = jQuery("#nickName").val(); var flag = false; jQuery.ajax( { url: "checkNickName?t=" + (new Date()).getTime(), data:{nickName:nickName}, dataType:"j

jquery之empty()方法详解

empty()函数用于清空每个匹配元素内的所有内容. empty()函数将会移除每个匹配元素的所有子节点(包括文本节点.注释节点等所有类型的节点). 该函数属于jQuery对象(实例). 语法 jQueryObject.empty( ) 返回值 empty()函数的返回值为jQuery类型,返回当前jQuery对象本身(以便于进行链式风格的编程). 示例&说明 empty()函数用于清空每个匹配元素内的所有内容: <div><p>段落文本1<span></

jQuery的serializeArray()方法详解

<script type="text/javascript"> //验证不为空提交 function editSubmitcheck() { var cityID = $("#editCityID").val().trim(); var cityName = $("#editCityName").val().trim(); var comment = $("#editComment").val().trim();

jquery的2.0.3版本源码系列(3):285-348行,extend方法详解

目录 1 . jquery extend的基本使用 通过285行的源码 jQuery.extend = jQuery.fn.extend = function() { ,extend方法要么是直接挂在到jQuery的静态方法,要么是挂载到fn上其实就是原型上(参考283行的赋值操作)的实例方法.extend方法可以传一个对象,类似于插件的方式,也可以传多个对象进行拷贝. <script src="js/jquery-2.0.3.js"></script> <