// get some data var foobar = ; // specify handler, it needs data as a paramter var handler = function(data) { }; // add click handler and pass foobar! $(''a'').click( function(event) { handler(foobar); } ); // if you need the context of the original handler, use apply: $(''a'').click( function(event) { handler.apply(this, [foobar]); } );
用到简单的AJAX后,我们可以认为已经非常之“web2.0”了,但是到现在为止,我们还缺少一些酷炫的效果。下一节将会谈到这些效果.
一些动态的效果可以使用 show() 和 hide()来表现:
$(document).ready(function() { $("a").toggle(function() { $(".stuff").hide(''slow''); }, function() { $(".stuff").show(''fast''); }); });
你可以与 animate()联合起来创建一些效果,如一个带渐显的滑动效果:
$(document).ready(function() { $("a").toggle(function() { $(".stuff").animate({ height: ''hide'', opacity: ''hide'' }, ''slow''); }, function() { $(".stuff").animate({ height: ''show'', opacity: ''show'' }, ''slow''); }); });
很多不错的效果可以访问interface plugin collection. 这个站点提供了很多demos和文档
这些效果插件是位于jQuery插件列表的前面的,当然也有很多其他的插件,比如我们下一章讲到的表格排序插件。
这个表格排序插件能让我们在客户端按某一列进行排序,引入jQuery和这个插件的js文件,然后告诉插件你想要哪个表格拥有排序功能。
要测试这个例子,先在starterkit.html中加上像下面这一行的代码:
<script src="lib/jquery.tablesorter.js" type="text/javascript"></script>
然后可以这样调用不着:
$(document).ready(function() { $("#large").tableSorter(); });
现在点击表格的第一行head区域,你可以看到排序的效果,再次点击会按倒过来的顺序进行排列。
这个表格还可以加一些突出显示的效果,我们可以做这样一个隔行背景色(斑马线)效果:
$(document).ready(function() { $("#large").tableSorter({ stripingRowClass: [''odd'',''even''], // Class names for striping supplyed as a array. stripRowsOnStartUp: true // Strip rows on tableSorter init. }); });
关于这个插件的更多例子和文档可以在 tablesorter首页找到.
几乎所有的特件都是这样用的:先include插件的js文件,然后在某些元素上使用插件定义的方法,当然也有一些参数选项是可以配置的
经常更新的插件列表可以从jQuery官方站 on the jQuery site找到.
当你更经常地使用jQuery时,你会发现将你自己的代码打包成插件是很有用处的,它能方便地让你的公司或者其他人进行重用.下一章我们将谈到如何构建一个自己的插件.
写一个自己的jQuery插件是非常容易的,如果你按照下面的原则来做,可以让其他人也容易地结合使用你的插件.