`

制作jQuery插件

阅读更多

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hulefei29/archive/2009/02/03/3859825.aspx

 

写一个自己的jQuery插件是非常容易的,如果你按照下面的原则来做,可以让其他人也容易地结合使用你的插件.

 

1、为你的插件取一个名字,在这个例子里面我们叫它"foobar".
2、创建一个像这样的文件:jquery.[yourpluginname].js,比如我们创建一个jquery.foobar.js
3、创建一个或更多的插件方法,使用继承jQuery对象的方式,如:
     jQuery.fn.foobar = function() { 

          // do something

     };

4、可选的:创建一个用于帮助说明的函数,如: 
     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插件Tabs实现过程

    制作jQuery插件Tabs实现过程的知识点可以总结如下: 1. 插件开发思路:在开发一个jQuery插件之前,要先明确设计思路,确定插件需要实现的主要功能,比如Tabs切换、自动轮换效果以及Ajax数据请求和加载等。 2. DOM...

    好用清除html的jquery插件

    你可以通过查看源代码来学习其工作原理,这对于初学者或者希望深入了解jQuery插件开发的人来说是一个很好的学习机会。 标签“清除html格式”是这个插件的核心特性,它可能包括移除HTML标签、属性、样式以及其他非...

    jQuery插件开发学习

    这篇“jQuery插件开发学习”的主题旨在帮助开发者深入理解如何利用jQuery来开发自定义插件,提高代码复用性和项目效率。下面我们将详细探讨jQuery插件开发的相关知识点。 首先,了解jQuery的核心概念是至关重要的。...

    jquery插件.rar

    《jQuery插件开发详解》 在Web开发领域,jQuery是一个广泛应用的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画制作等任务。jQuery插件是jQuery生态系统的重要组成部分,它们扩展了jQuery的核心...

    自己动手制作jquery插件之自动添加删除行功能介绍

     这个插件的演示页面是http://www.lovewebgames.com/demo/autoAdd/autoAdd.html ,引用自己动手制作jquery插件之自动添加删除行(上)里的介绍,这是一个简单的插件,它的作用是:一个系统中有大量的需要对一个行进行...

    jquery插件

    《jQuery插件详解及其在web前端开发中的应用》 jQuery,作为一款强大的JavaScript库,极大地简化了JavaScript的DOM操作、事件处理以及动画制作等任务,是web前端开发中不可或缺的工具。尤其对于初学者和经验丰富的...

    实现滚屏操作的jquery 插件

    这个插件特别适合于制作产品展示、幻灯片、教程或者任何需要流畅、分段滚动体验的网页。 **1. 安装与引入** 在项目中使用 `fullpage.js` 插件,首先需要在 HTML 文件中引入 jQuery 库和 fullpage.js 文件。通常,...

    jQuery插件开发详解

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

    通用 JQuery 插件 开发

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

    jquery插件打包下载

    《jQuery插件打包下载详解及应用》 在Web开发领域,jQuery作为一个强大的JavaScript库,极大地简化了DOM操作、事件处理、动画制作等任务,深受开发者喜爱。本文将围绕"jQuery插件打包下载"这一主题,深入探讨jQuery...

    dreamweaver8-jQuery插件

    "dreamweaver8-jQuery插件"正是为了解决在Dreamweaver 8中更便捷地使用jQuery而设计的。 这个插件的引入,使得开发人员能够在Dreamweaver 8环境中无缝地集成jQuery的功能。通过安装文件`jQuery_API.mxp`,用户可以...

    JQuery 插件模板 制作jquery插件的朋友可以参考下

    本篇文章将详细讲解如何基于提供的JQuery插件模板来制作自己的jQuery插件。 首先,让我们解析一下给出的模板代码: ```javascript ;(function($) { // 私有函数 var p = {}; p.func1 = function() { }; // 主...

    jquery制作自定义样式登录插件

    "jquery插件"是指基于jQuery框架的扩展代码,可以轻松添加到项目中,提供额外的功能。"登录"和"注册"是此插件的核心功能,它可能包括验证用户输入、处理登录请求以及可能的注册新用户功能。"表单"是指用于收集用户...

    十套常用的精美jquery插件

    【jQuery插件详解】 在网页开发中,jQuery插件是一种扩展了jQuery库功能的JavaScript代码,使得开发者可以更轻松地实现复杂的功能,如动画效果、交互控件等。本资源包含十套常用的精美jQuery插件,涵盖了多个实用...

    JQUERY插件之自定义滚动条DEMO

    本主题聚焦于“JQUERY插件之自定义滚动条DEMO”,这涉及到如何使用jQuery来实现一个自定义的滚动条,以替代浏览器默认样式,并确保在不同浏览器如IE、Firefox、Chrome和百度浏览器中的兼容性。 首先,我们了解滚动...

    京东下雪jquery插件

    【标题】"京东下雪jquery插件"是一个用于网页中创建雪花飘落视觉效果的JavaScript库,基于流行的jQuery框架。这个插件旨在为网站添加节日氛围或者特定活动的装饰元素,比如在冬季促销或者特定庆祝活动中,模拟下雪...

    Revealator-制作元素进入视口产生动画的jQuery插件

    1. **下载插件**: 你可以从官方仓库或者第三方资源网站下载Revealator的压缩包文件,文件名可能类似于"Revealator-制作元素进入视口产生动画的jQuery插件"。 2. **引入库文件**: 将下载的压缩包解压后,将`jquery....

    jquery插件——多级菜单

    在这个“jquery插件——多级菜单”项目中,我们可能看到以下关键技术点: 1. **CSS样式和布局**:多级菜单的呈现通常依赖于CSS来实现层次感。通过设置适当的`display`属性(如`none`和`block`),我们可以控制菜单...

Global site tag (gtag.js) - Google Analytics