查看: 1639|回复: 9
打印 上一主题 下一主题

[经验分享] jQuery是如何工作的

[复制链接]
   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2012-1-13 10:12:19 |只看该作者 |倒序浏览

最近发现jQuery很成熟了,我看了jQuery官方的document,这里先提供入门章节内容。主要介绍jQuery是如何工作的。
AD:







我最近在做一个项目,需要用到ajax,我以前做ajax项目,已经有很多年了,jQuery还不成熟,需要自己编写大量的Javascript代码。
最近发现jQuery很成熟了,我看了jQuery官方的document,这里先提供入门章节内容。
专题:jQuery从入门到精通
对jQuery的简要介绍和一些需要了解的如何使用jQuery的概念
这段主要教授你如何开始使用jQuery. 如果你还没有一个测试页面,请先从按照下面的代码创建一个HTML页面。
<!doctype html>  <html>  <head>     <meta charset="utf-8">     <title>Demo</title>  </head>  <body>     <a href="http://jquery.com/">jQuery</a>     <script src="jquery.js"></script>    <script>     </script> </body> </html>
编辑Script标签的src属性,指向你的jQuery.js属性。例如,如果你的jQuery.js和HTML文件在同一文件夹下:
<script src="jquery.js"></script>
页面加载完成时运行代码
很多Javascript程序员都要做的第一件事情,就是加这样的一些代码到他们的程序:
window.onload = function(){ alert("welcome"); }
这段代码将会在页面加载成功时被正确执行,但是,这段代码的问题是Javascript代码将会在所有的图片信息被全部下载完成后执行(这里包含了广告栏)。这里使用首先Window.onload的原因是HTML在你最初运行这段代码的时候,HTML文档并没有完全加载。
To circumvent both problems, jQuery has a simple statement that checks the document and waits until it's ready to be manipulated, known as the ready event:
jQuery有一个很简单的声明来检查文档,和判断文档是否已经准备完成,这里称之为 ready event:
$(document).ready(function(){     // Your code here   });
我们在ready event中添加一个超链接点击的处理方法。
$(document).ready(function(){    $("a").click(function(event){      alert("Thanks for visiting!");    });  });
保存HTML文件,在浏览器中刷新此文件,点击网页中的超链接,在连接到指定页面之前首先会弹出一个提示框。
在点击和其他的很多事件中,你可以在这里使用event.preventDefault()来阻止其进行默认行为。
$(document).ready(function(){     $("a").click(function(event){       alert("As you can see, the link no longer took you to jquery.com");       event.preventDefault();     });   });
完整示例
这里提供一个完整的HTML文件的示例来演示之前我们讲述的内容。注意这里连接到了Google’s CDN 来加载jQuery的核心库。你最好将它放在一个单独文件中,并且在Head标签中完成对它的加载。
<!DOCTYPE html>  <html lang="en">  <head>    <meta charset="utf-8">    <title>jQuery demo</title>  </head>  <body>    <a href="http://jquery.com/">jQuery</a>    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>    <script>      $(document).ready(function(){         $("a").click(function(event){           alert("As you can see, the link no longer took you to jquery.com");           event.preventDefault();         });       });     </script>  </body>  </html>
增加和删除css样式
重要: 接下来的jQuery示例需要放在ready event内,这样在文档准备结束后立即执行。
我们另一种常常做的事情,便是增加(或者删除)一个css样式。
首先我们在<head>标签内增加一些样式:
<style>      a.test { font-weight: bold; }   </style>
然后在代码内使用addClass方法
$("a").addClass("test");
所有超链接会被加粗。
要删除此样式,只需要使用 remove class方法。 (允许添加多个样式到html)
$("a").removeClass("test");
特效
jQuery提供了一组特效,使用这些特效可以让你的网站脱颖而出,你只需要将上面的测试文件添加如下代码就可以进行测试:
$("a").click(function(event){     event.preventDefault();     $(this).hide("slow");   });
如果你点击超链接,你所点击的超级链接会被隐藏。
回调函数
回调函数是指父方法运行通过后传递参数并且进行调用的函数。回调函数的特殊之处在父函数可以在回调函数运行之前运行。另一个重要的点是要知道如何正确的传递回调。这也是我常常忘记的正确语法。
无参数回调
你可以使用下面的代码来设定回调参数。
$.get('myhtmlpage.html', myCallBack);
注意 第二个参数只包含回调函数的名字(不是字符串并且不包含括号对). Javascript的函数可以像参数一样传递,并且在后面的代码执行。
包含参数的回调
你可能会这样问,"如果包含参数,你会怎么做?"。
错误的方式
错误的调用方式(不会被执行)
$.get('myhtmlpage.html', myCallBack(param1, param2));
这种方式并不会被调用,因为它调用了
myCallBack(param1, param2)
它的执行结果会被作为第二个参数传递给$get()函数
正确的方式
上面的方式问题在于 myCallBack在作为函数传递之前先被进行了评估。Javascrip和的jQuery 将函数扩展为函数指针,例如IE的设定Timeout函数。
下面的方法,创建了一个匿名函数并且注册了回调函数。注意这里使用了function(){}匿名函数只做了一件事情,使用两个参数param1,param2调用myCallBack方法。
$.get('myhtmlpage.html', function(){   myCallBack(param1, param2);  });
param1和param2是$get()方法获取页面完成后提供的参数。
原文:http://www.cnblogs.com/daitou0322/archive/2011/08/07/2130138.html



分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2012-1-21 23:28:13 |只看该作者
开开心过大年,亲朋好友聚一起,一年抽劳放一边,喝点小酒真高兴,酒后可千万不能开车,那样可不安全,祝平安幸福!2012新年祝福
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2012-1-24 23:30:45 |只看该作者
对你的思念象袅袅的轻烟不绝如缕,对你的祝福是潺潺的小溪叮咚作响。或许岁月将往事褪色,或许空间将彼此隔离。但值得珍惜的依然是你给我的情谊。再次对你说声:新年快乐!
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

地板
发表于 2012-3-1 23:18:25 |只看该作者
心中有爱,爱咋咋地
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2012-4-2 23:24:53 |只看该作者
响应天帅号召,顶
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2012-4-15 23:19:20 |只看该作者
百度的叫度娘,网易的叫易娘,新浪内部还在为是叫新娘还是浪娘而争论不休!……不管你们是企鹅的额娘,豆瓣的伴娘,还是华为的伪娘,都要记得,淘宝才是你们的亲娘啊!亲!!
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

7#
发表于 2012-5-22 23:26:47 |只看该作者
“再次路过……”我造一个-----特别路过
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

8#
发表于 2012-6-20 23:27:27 |只看该作者
读铁系缘分,顶铁系友情
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

9#
发表于 2012-9-19 10:16:18 |只看该作者
不错哦,顶一下......
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

10#
发表于 2012-11-2 23:25:06 |只看该作者
很经典,很实用,学习了!
回复

使用道具 举报

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

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-2-22 02:44 , Processed in 0.110690 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部