jQuery起点教程之插件制作

Posted 爱无边界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery起点教程之插件制作相关的知识,希望对你有一定的参考价值。

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

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

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

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

  jQuery.fn.foobar = function() {

  // do somethinghttp://www.82676666.com

  };

  可选的:创建一个用于帮助说明的函数,如:

  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 togglehttp://www.hrbfc120.com

  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 codehttp://www.120hrb.com

  // ...

  return this; // if possible, return "this" to not break the chain

  });

以上是关于jQuery起点教程之插件制作的主要内容,如果未能解决你的问题,请参考以下文章

妙味课堂Jquery从入门到插件开发到模拟视频教程 Jquery实战开发 Jquery UI

前端之jQuery03 插件

如何制作chrome插件,可以用jquery修改已知网页DOM

如何制作 Javascript/jQuery/HTML 动画图像堆栈

JavaScript之jQuery-7 jQuery 使用插件(使用插件日历插件表单验证插件)

轻量级HTML5插件使用jQuery绘制SVG图形轮廓线路径动画教程