设为首页收藏本站
 找回密码
 注册

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

搜索
查看: 1086|回复: 7

jQuery 新手十天速成 第一天 [复制链接]

Rank: 9Rank: 9Rank: 9

Medal No.9 Medal No.8 Medal No.7 Medal No.6 Medal No.5 Medal No.4 Medal No.3 Medal No.2 Medal No.10 Medal No.1

发表于 2011-7-5 12:53:33 |显示全部楼层
原本想写一个文字的教程,大概十节课,后来想想,文字知识对于新手看来,其实还是很难的。
不如在等一小段时间,我出一个视频讲解教程,敬请期待。  ---  王子墨  2011.7.6

jQuery 新手十天速成  第一天
JQuery- What, Why, When, Where, Who

what

jQuery是一个了不起的javascript库,它可以是我们用很少的几句代码就可以创建出漂亮的页面效果。从网站的方面说,这使得javascript更加有趣。如果你这样想:“孩子,我需要另外一个javascript库,就好比我I need another hole in my head”那么加入这个俱乐部吧。这正是我第一次遇到的时候所想的。我已经用过了Moo.fx, Scriptaculous, TW-SACK, Prototype. 我曾参与了RICO, Yahoo YUI和其他一些库的开发。  

没有了PHPjavascript和我一点也不亲近了。但是我还是尽全力保持头脑清醒,并尽量保持用AJAX去思考。 所以当我遇到jQuery的时候我想:“还需要另外一个javascript库吗?不了,谢谢…”  


why  

为什么我改变我我对jQuery的看法,以及为什么你要考虑去使用它?  很简单,只要你看一眼过使用jQuery的页面你就会发现它是如此的简单易用.只用很少的几行,就能表现出很优雅的效果.  有一天当我突然看到一些用jQuery写的代码时我一下子豁然开朗了.  早茶的过程中,我例行公务的去翻阅我的订阅,去看每日必看的设计博客的时候我看到了一个用jQuery写的javascript的例子.事实证明,这些代码还是有些和浏览器关联的bug,不过这些概念还是我以前从来没有见过的.  还有那些代码…  

代码看起来很简单看起来不像我以前见过的.但也不无道理.  我开始通读文档,并且惊奇的发现用一点点代码竟然能做这么多事情.  


when

你应当在你需要的时候使用jQuery.给你一个小型的库文件 DOM强大的控制能力 不费吹灰之力的工作,和少许的努力.  或者快速的通过AJAX 没有大量无用的代码 和一些基本的动画效果.但是 如果你需要超级花式效果,动画,拖放,和超级平稳动画,那么你可能想使用Prototype.他是一个有大量动画效果的类库.  


where

你可以jQuery的官方网站下载到他的源代码(10K).  


who  

window.onload更快一些的载入

window.onload()是传统javascript里一个能吃苦耐劳的家伙。它长久以来一直被程序员们作为尽快解决客户端页面载入问题的捷径。但有时候等待页面载入还是不够快。只有少数大型的图片文件会被快速的载入,而大部分大型的图片文件会使window.onload()载入的很慢。所以当我为最近的网络营销创建一个web应用程序的时候我不得希望更快一点。有一些围绕window.onload()的新研究(比如brother cake)的代码是一种快速的方式。如果你需要,可以试试。  


但是如果你要做一些DOM(文档对象模型)javascript的编程,那么你为什么不试试jQuery,它就像你自己亲自制作一个蛋糕,并品尝它。(双关Brother Cake,俏皮话)。  jQuery有一个用来作为DOM快速载入javascript的得心应手的小函数,那就是ready 他在页面加载完成之后执行。  


  1. $(document).ready(function(){

  2. // Your code here...

  3. });
复制代码

你可以用他来载入任何你想要载入的javascript,并不一定要保留jQuery的编码风格。让jQuery同时去执行多个函数也是可以的。  

你以前可能见过类似于init()之类的函数,你会发现jQuery会快很多。  

在以后的教程里我们会一遍又一遍的用到这个函数。  

OK你现在可以尝试一下代码:(记得把jQuery引用进你的页面哦,不记得的话看看上篇。)  


  1. $(document).ready(function(){

  2. alert("Congratluations!");

  3. });
复制代码



很容易的制作双色表格  

这节本身没有太多的价值,重点在它提供的这个例子上。我将代码帖出来然后对重点部分注释一下:我们先来看看Thewatchmakerproject传统的做法:预览地址(你可以查看一下源代码)。再来看看jQuery是如何用5

代码来搞定的:  


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml

  2. <html xmlns="http://www.w3.org/1999/xhtml">

  3. <head>

  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

  5. <title>StripingTable</title>

  6. <script src="jquery-latest.pack.js" type="text/javascript"></script>

  7. <!--将jQuery引用进来-->

  8. <script type="text/javascript">

  9. $(document).ready(function(){  //这个就是传说的ready

  10.         $(".stripe tr").mouseover(function(){  

  11.                 //如果鼠标移到class为stripe的表格的tr上时,执行函数

  12.                 $(this).addClass("over");}).mouseout(function(){

  13.                                 //给这行添加class值为over,并且当鼠标一出该行时执行函数

  14. $(this).removeClass("over");})  //移除该行的class

  15.         $(".stripe tr:even").addClass("alt");

  16.                 //给class为stripe的表格的偶数行添加class值为alt

  17. });

  18. </script>

  19. <style type="text/css">

  20. th {

  21.         background:#0066FF;

  22.         color:#FFFFFF;

  23.         line-height:20px;

  24.         height:30px;

  25. }



  26. td {

  27.         padding:6px 11px;

  28.         border-bottom:1px solid #95bce2;

  29.         vertical-align:top;

  30.         text-align:center;

  31. }



  32. td * {

  33.         padding:6px 11px;

  34. }



  35. tr.alt td {

  36.         background:#ecf6fc;  /*这行将给所有的tr加上背景色*/

  37. }



  38. tr.over td {

  39.         background:#bcd4ec;  /*这个将是鼠标高亮行的背景色*/

  40. }



  41. </style>

  42. </head>



  43. <body>

  44. <table class="stripe" width="50%" border="0" cellspacing="0" cellpadding="0">

  45. <!--用class="stripe"来标识需要使用该效果的表格-->

  46. <thead>

  47.   <tr>

  48.     <th>姓名</th>

  49.     <th>年龄</th>

  50.     <th>QQ</th>

  51.     <th>Email</th>

  52.   </tr>

  53. </thead>

  54. <tbody>

  55.   <tr>

  56.     <td>邓国梁</td>

  57.     <td>23</td>

  58.     <td>31540205</td>

  59.     <td>gl.deng@gmail.com</td>

  60.   </tr>

  61.   <tr>

  62.     <td>邓国梁</td>

  63.     <td>23</td>

  64.     <td>31540205</td>

  65.     <td>gl.deng@gmail.com</td>

  66.   </tr>

  67.   <tr>

  68.     <td>邓国梁</td>

  69.     <td>23</td>

  70.     <td>31540205</td>

  71.     <td>gl.deng@gmail.com</td>

  72.   </tr>

  73.   <tr>

  74.     <td>邓国梁</td>

  75.     <td>23</td>

  76.     <td>31540205</td>

  77.     <td>gl.deng@gmail.com</td>

  78.   </tr>

  79.   <tr>

  80.     <td>邓国梁</td>

  81.     <td>23</td>

  82.     <td>31540205</td>

  83.     <td>gl.deng@gmail.com</td>

  84.   </tr>

  85.   <tr>

  86.     <td>邓国梁</td>

  87.     <td>23</td>

  88. <td>31540205</td>

  89.     <td>gl.deng@gmail.com</td>

  90.   </tr>

  91. </tbody>

  92. </table>

  93. <p>PS: 飘飘说我的table没有<thead>,我知错了...</p>

  94. </body>

  95. </html>
复制代码


这里有一个jQuery的技巧不得不提一下:jQuery的链式操作,什么是链式操作呢?  我们来看看,本来应该写

成这样子的:  


  1. $(".stripe tr").mouseover(function(){  

  2.         $(this).addClass("over");})

  3. $(".stripe tr").mouseout(function(){  

  4.         $(this).removeClass("over"); })
复制代码

但是我们写成了:  


  1. $(".stripe tr").mouseover(function(){  

  2.                       $(this).addClass("over");}).mouseout(function(){

  3.                           $(this).removeClass("over");

  4. })
复制代码

jQuery中,执行完mouseover或者mouseout等方法之后,都会返回当前的对象,所以可以进行链式操作 .





第一天就学到这里吧。
  

Rank: 7Rank: 7Rank: 7

发表于 2011-7-6 20:04:02 |显示全部楼层
没了?求新节 必看

使用道具 举报

Rank: 1

发表于 2011-9-28 16:02:51 |显示全部楼层
讲的很好! 第二节在哪里? 等待中...

使用道具 举报

Rank: 1

发表于 2011-9-29 18:04:25 |显示全部楼层
第二章 在哪里? 有木有...

使用道具 举报

Rank: 1

发表于 2011-11-10 09:40:15 |显示全部楼层
难道被LZ忽悠了??

使用道具 举报

Rank: 2

发表于 2011-12-26 14:00:11 |显示全部楼层
相信楼主的说,非常支持你

使用道具 举报

Rank: 1

发表于 2011-12-27 00:01:17 |显示全部楼层
此帖必火!

使用道具 举报

Rank: 1

发表于 2012-2-25 01:19:28 |显示全部楼层
还是不懂,看看神贴。膜拜。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|jQuery爱好者   

GMT+8, 2012-5-23 08:57

Powered by jQfans!

© 2010-2011 jQfans Inc.

回顶部