找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 7305|回复: 2

jQuery中文入门指南,翻译加实例,jQuery的起点教程(四)

[复制链接]
发表于 2009-11-25 01:52:40 | 显示全部楼层 |阅读模式 IP:江苏扬州
五:Animate me(让我生动起来):使用FX
一些生动的效果可以使用 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 FX Module
Interface plugin
Sort me(将我有序化):使用tablesorter插件(表格排序)
这个表格排序插件能让我们在客户端按某一列进行排序,引入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({// Class names for striping supplyed as a array.  stripingRowClass: ['odd','even'],   stripRowsOnStartUp: true  // Strip rows on tableSorter init. });});
关于这个插件的更多例子和文档可以在 tablesorter首页找到.
几乎所有的特件都是这样用的:先include插件的js文件,然后在某些元素上使用插件定义的方法,当然也有一些参数选项是可以配置的
经常更新的插件列表可以从jQuery官方站 on the jQuery site找到.
当你更经常地使用jQury时,你会发现将你自己的代码打包成插件是很有用处的,它能方便地让你的公司或者其他人进行重用.下一章我们将谈到如何构建一个自己的插件.
本章的相关链接:
Plugins for jQuery
Tablesorter Plugin
Plug me:制作自己的插件
写一个自己的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();
Or with some options:
$("...").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;});
你可能想要把这个重写为一个插件,很直接地:
$.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) {  // instead of selecting a static container with $("#rating"),  //we now use the jQuery context var container = this;  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});
Next steps(下一步)
如果你想做更好的javascript开发,建议你使用一个叫 FireBug的firefox插件. 它提供了断点调试(比alert强多了)、观察DOM变化等很多漂亮的功能
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 01:23 , Processed in 0.388782 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表