Tutorials:Getting Started with jQuery---4

 

SORT ME: USING THE TABLESORTER PLUGIN

tablesorter插件可以在客户端完成对表格的排序。通过使用jQuery和插件,你可以告诉插件哪个表格需要排序。

为了完成这个例子,需要做下载download the tablesorter plugin ,然后把下面这一行加到starterkit.html里面:

 <script src="jquery.tablesorter.js"></script>

包含了插件之后,你可以这样调用:

 $(document).ready(function(){
   $("#large").tablesorter();
 });

当你点击表头的时候,你会发现第一次点击的时候按照升序排列,第二次点击则按照降序排列。

表格中一些行使用了高亮显示,可以通过一些参数来完成这个功能:

 $(document).ready(function() {
   $("#large").tablesorter({
     // striping looking
     widgets: ['zebra']	
   });
 });

tablesorter homepage上,有更多的例子和文档可以参照。

大部分插件的使用方法:包含插件,在一些元素上调用插件方法,可以传递一些可选的参数给插件。

下面是一个事实更新的插件列表on the jQuery Plugin site

当你经常使用jQuery的时候,你会发现把你自己的代码包装成一个插件是件很有用的事情。你可以用在公司,也可以在开发社区共享它们。 下一部分会给你更多关于如何组织插件的建议。

可能感兴趣的链接:

PLUG ME: WRITING YOUR OWN PLUGINS

为jQuery写插件十分的容易。而且如果你按照规则办事的话,别人也会很容易的使用你的插件。

Plugin Naming

通过名字找到你的插件,我们把这个例子叫做"foobar"。创建js文件,例如命名为jquery.foobar.js。

Adding a Custom Method

通过扩展jQuery对象来创建一个或者多个方法,例如:

 jQuery.fn.foobar = function() {
   // do something
 };

稍后你可以通过下面的代码来调用:

 $(...).foobar();

Default Settings:

为用户创建默认的设置,例如:

 jQuery.fn.foobar = function(options) {
   var settings = jQuery.extend({
     value: 5, name: "pete", bar: 655
   }, options);
 };

接下来你可以调用插件的默认设置:

 $("...").foobar();

Or with some options:

 $("...").foobar({ value: 123, bar: 9 });

Documentation

如果你要发布的你插件的话,你也可以提供一些例子和文档。在下面这个链接lots of plugins有许多可用的插件。

现在你已经有了编写插件的基本知识。让我们来用这些知识来编写自己的插件。

Checkbox Plugin

许多人都会使用jQuery包装关于点击radiobutton或者checkbox的插件。他们会这样写这段代码:

 $(":checkbox").each(function() {
   this.checked = true;
   this.checked = false; // or, to uncheck
   this.checked = !this.checked; // or, to toggle
 });

无论你想要的是哪种代码,你就会向重新编写这个插件:

 jQuery.fn.check = function() {
   return this.each(function() {
     this.checked = true;
   });
 };

然后这样使用这个插件:

 $(":checkbox").check();

现在你可以写为uncheck()和 toggleCheck()写插件了。但是我们也可以扩展这个插件让它来接收一些参数。

 jQuery.fn.check = function(mode) {
   // if mode is undefined, use 'on' as default
   var mode = mode || 'on';
   
   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", "off", 和 "toggle",:

 $(":checkbox").check();
 $(":checkbox").check('on');
 $(":checkbox").check('off');
 $(":checkbox").check('toggle');

Optional Settings

如果要传递更多的参数,这样的操作就需要复杂一点的操作,因为只有保证第一个参数是非null的才能保证使用第二个参数。

在之前的tablesorter中,通过传递对象来解决这个问题。你既可以传递所有的参数,也可以传递带有key/value的对象来重写每个设置。 

作为联系,你可以试着重写在第四部分的投票的代码。这个插件的结构如下:

 jQuery.fn.rateMe = function(options) {
   // instead of selecting a static container with 
   // $("#rating"), we now use the jQuery context
   var container = this;
   
   var settings = jQuery.extend({
     url: "rate.php"
     // put more defaults here
   }, options);
   
   // ... rest of the code ...
   
   // if possible, return "this" to not break the chain
   return this;
 });

你可以像下面这样运行插件:

 $(...).rateMe({ url: "test.php" });

NEXT STEPS

如果你想开发更多的JavaScript,你可以考虑使用FIrefox的FireBug。它提供了一个控制台,调试器一起许多其他有用的工具来开发日常的JavaScript。

如果你有无法解决的问题,或者有新的想法,可以发送到jQuery邮件列表jQuery mailing list

对于这个向导如果有任何的疑问,请给我的博客留言blog或者直接与我联系。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值