--专题: web 2.0

金牌译作 jQuery实例编程 part1

1202个读者 翻译: 令狐葱  03/09/2008 原文 引用 双语对照及眉批 字体大小

简介

jquery教程

 

我可以写本小书来说说jQuery是怎么的好,以及它是怎么改变了我的Javascript编程习惯,让我觉得很受用。算了,废话少说,言归正传说说plugins(插件)。

其实我对jQuery的开发也不是很熟悉,但是它的好处是不言自喻的。至少,你可以将你的代码封装成可以重用的模块,并且使这些插件高度可配置。

例子

展开和折叠功能。可能每个人都见过,网站上的这些区域包含一些你可能想要看到的额外信息,但是它却不总是立即出现。你点击那个+然后稍等(译注: hey presto这个不知道怎么翻译),内容就会出现并且+变成了-,以便你把它折叠起来。

就像下面这个样子:

 

实现方法

 jQuery好就好在你可以很轻易的制作出很好的效果。我的意思是,当javascript关闭的时候,它可以完美的退化。当没有开启javascript的时候,我们期望只是简单的显示原有的标记,要实现这个我们就需要使我们的插件在加载的时候来隐藏这些内容,把它放在图标+下面以表示它是可以折叠的部分,然后关联相应的事件处理函数来管理展开、折叠效果。当javascript关闭的时候,用户也不至于手足无措。

下面是整个插件的伪代码。

插件的主代码

1. 为我们找得元素(头或者内容)设定默认的设置。

2. 遍历找到的每个jQuery对象(就是包含着头和内容的div标签)

3. 找到头元素并加上+图标

4. 给头添加一个事件响应(参见下面的头的点击响应部分)

5. 隐藏内容

头的点击响应

1. 设置内容是展开还是折叠的图标图片地址。

2. 在头中改变图标

3. 交替改变内容的显示和隐藏

代码部分


  1. //This simple jQuery plugin is for collapsing and expanding sections of content.  
  2. (function() {  
  3.   
  4. jQuery.fn.collapse = function(settings) {  
  5.   
  6. var cContainers = this;     //The jquery objects that contain our collapsable items.  
  7.   
  8. // define defaults and override with options, if available  
  9. // by extending the default settings, we don't modify the argument  
  10. settings = jQuery.extend({  
  11. header: "h3",  
  12. content: "ul",  
  13. expandIcon: "images/plus_icon.gif",  
  14. collapseIcon: "images/minus_icon.gif"  
  15. }, settings);  
  16.   
  17. //Loop through the jquery objects (these are the elements that contain our items to collapse).  
  18. return cContainers.each(function(){  
  19.   
  20. //This current dom element.  
  21. var jDomElem = this;  
  22. var headerDomElem = jQuery(settings.header, jDomElem);  
  23. var contentDomElem = jQuery(settings.content, jDomElem);  
  24.   
  25. //Put the plus/minus icon in to the header.  
  26. var expandIconDomElem = headerDomElem.prepend('<img src="' + settings.expandIcon + '" alt="" />');  
  27.   
  28. //When the header element is clicked.  
  29. headerDomElem.click(function() {  
  30.   
  31. //Determine the correct expand/collapse icon src.  
  32. var iconImgSrc = settings.expandIcon;  
  33. if(contentDomElem.css("display")=="none") {  
  34. iconImgSrc = settings.collapseIcon;  
  35. }  
  36.   
  37. //Take the header (the clicked item) and change the icon in it. We know this is the first element inside it because we put it there.  
  38. jQuery(this.firstChild).attr("src", iconImgSrc);  
  39.   
  40. //Show/hide the content.  
  41. contentDomElem.toggle();  
  42.   
  43. });  
  44.   
  45. //Hide the content area.  
  46. contentDomElem.hide();  
  47.   
  48. });  
  49.   
  50. };  
  51.   
  52. })(jQuery);

给插件命名

有个简单的给插件命名的方式,就是叫jquery.插件名.js,所以我们的插件就叫jquery.collapse.js。

同时,我们还使用 .pack作为文件名称的结尾,来表示它是压缩后的JS。比如,jquery.collapse.pack.js.

使用插件

现在我们有了插件,那就看看如何使用吧:


  1. $(document).ready(function(){  
  2. $("div.collapse").collapse();  
  3. }); 

"div.collapse"意思就是我们将把我们的插件应用到有一个class属性为collapse的div标签上。我只是使用collapse这个类来简单的标示折叠、展开的内容。如果出于某种原因,我们需要改表这些div中的来表示头或者内容的元素名称,或者我们想改变一个那个图标,我们可以这样用这个插件:


  1. $("div.collapse").collapse({header: "h2", content: "p", exapandIcon: "images/plus.gif", collapseIcon: "images/minus.gif"});

结果

你可以在这里下载这个插件的代码:link

继续阅读
  • 如何提高页面响应速度

            访问速度缓慢的互联网已经成为过去,但页面能瞬时呈现也只是未来才会发生的事情. Christianheilmann的一些技巧,现在就可以令你的网站访问起来更为流畅。         页...

  • Ajax 的六个误区

    原文发表日期:2006年12月5日 Ajax到底是什么?是一个并不太容易掌握,但可以增加网站交互性的方法?是Web2.0的基石?还是又一轮网络开发中的跟风?就像以前流行过的闪烁字体、“溅水”页(译者:...

  • 窥探jQuery——面向JavaScript程序员

    Simon Willison来自英国,是一名经验丰富的开发人员。曾工作于Yahoo,是Web开发框架Django的创始人之一,也是OpenID的推动者。这是一篇针对jQuery的描述性文章,由于作者出...

  • JavaScript 是怎样让互联网变慢的(及对策)

    仅仅一行 JavaScript 代码就能给现今的许多网络日志[1]技术提供动力 -- JavaScript 小应用[2]、共享工具、访问者跟踪、广告客户。在很多时候,一个网志作者所需要的仅仅是一行 ...

  • AJAX 域名选择工具

    您曾经注册过网站域名么? 想到一个绝好的名字,到Register.com一查,不爽,已经被别人注册了。再试,还不行。反复多次,费时费力,还浪费感情。 这里推荐一个我个人认为最好的搜索域名界面: htt...

  • Easy Ajax with jQuery中文版[1]

    原文作者:Akash Mehta 原文地址:http://www.sitepoint.com/article/ajax-jquery 翻译:令狐葱  Ajax 在改变着web应用,并且带来了一种前所未...

  • 使用jQuery简化Ajax开发——Ajax开发入门[2][完]

    4. 让你的html动起来 你可以使用jQuery做一些基本的动画和效果。 动画效果的核心就是函数animate(), 它可以随时改变指定的css样式. 举例来说, 你可以改变高度, 宽度, 透明度或...

  • 使用 jQuery(Ajax)/PHP/MySQL实现自动完成功能

    使用 jQuery(Ajax)/PHP/MySQL实现搜索自动提示功能

相关小组

标签:

内容有问题?请与我们联络。

译作评分

  • Currently 5.00/5
  • 1
  • 2
  • 3
  • 4
  • 5
 5.0  |  1 个评分

0条评论    0眉批

添加评论

欢迎访问译言网。在这里,您可以。。。

阅读
发现
翻译