您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > jQuery的起点教程(PDF版)
知博网zhiblog.comjQuery中文入门指南,翻译加实例,jQuery的起点教程中文版译者:KeeljQuery教程专题••此文以实例为基础一步步说明了jQuery的工作方式。现以中文翻译(添加我的补充说明)如下。如有相关意见或建议请麻烦到我的BLOG写个回复或者EMAIL告知。英文原版:,感谢原文作者J?rnZaefferer本文发布已征求原作者同意。另外我认为在学习过程中,有两个API文档你要打开随时查看:://visualjquery.com/以下部分为原文翻译:jQuery入门指南教程这个指南是一个对jQuery库的说明,要求读者了解HTML(DOM)和CSS的一些常识。它包括了一个简单的HelloWorld的例子,选择器和事件基础,AJAX、FX的用法,以及如何制作jQuery的插件。这个指南包括了很多代码,你可以copy它们,并试着修改它们,看看产生的效果。内容提要1.安装2.HellojQuery3.Findme:使用选择器和事件4.Rateme:使用AJAX知博网zhiblog.com5.Animateme(让我生动起来):使用FX6.Sortme(将我有序化):使用tablesorter插件(表格排序)7.Plugme:制作您自己的插件8.Nextsteps(下一步)安装jQuery教程专题••一开始,我们需要一个jQuery的库,最新的下载可以到这里找到。这个指南提供一个基本包含实例的包供下载.下载:jQueryStarterkit(译者Keel注:一定要下载这个包,光看文章不实践肯定是不行的。)下载后解压缩,然后用你最喜欢的文本编辑器打开starterkit.html和custom.js这两个文件。(译者Keel注:这两个就是例子文件,所有的例子都用这两个例子作出,custom.js写jQuery代码,starterkit.html观察效果.建议用editPlus打开)现在,我们就已经做好了一切准备来进行这个著名的Helloworld例子.本章的相关链接:StarterkitjQueryDownloadsHellojQue在做所有事情之前,我们要让jQuery读取和处理文档的DOM,必须尽可能快地在DOM载入后开始执行事件,所以,我们用一个ready事件作为处理HTML文档的开始.看看我们打开的custom.js这个文件,里面已经准备好了:知博网zhiblog.com$(document).ready(function(){//dostuffwhenDOMisready});jQuery教程专题放一个简单的alert事件在需要等DOM完成载入,所以我们把任务稍稍变复杂一点:在点击任何一个链接时显示一个alert.$(document).ready(function(){$(a).click(function(){alert(Helloworld!);});});这样在你点击页面的一个链接时都会触发这个Helloworld的提示。(译者Keel注:请照此代码修改custom.js并保存,然后用浏览器打开starterkit.html观察效果。)让我们看一下这些修改是什么含义。$(a)是一个jQuery选择器(selector),在这里,它选择所有的a标签(译者Keel注:即a/a),$号是jQuery“类”(jQueryclass)的一个别称,因此$()构造了一个新的jQuery对象(jQueryobject)。函数click()是这个jQuery对象的一个方法,它绑定了一个单击事件到所有选中的标签(这里是所有的a标签),并在事件触发时执行了它所提供的alert方法.这里有一个拟行相似功能的代码:ahref=#onclick=alert('Helloworld')Link/a不同之处很明显,用jQuery不需要在每个a标签上写onclick事件,所以我们拥有了一个整洁的结构文档(HTML)和一个行为文档(JS),达到了将结构与行为分开的目的,就像我们使用CSS追求的一样.下面我们会更多地了解到选择器与事件.本章的相关链接:•••知博网zhiblog.comjQueryBasejQueryExpressionsjQueryBasicEventsFindme:使用选择器和事件jQuery教程专题jQuery提供两种方式来选择html的elements,第一种是用CSS和Xpath选择器联合起来形成一个字符串来传送到jQuery的构造器(如:$(divula));第二种是用jQuery对象的几个methods(方法)。这两种方式还可以联合起来混合使用。为了测试一下这些选择器,我们来试着在我们starterkit.html中选择并修改第一个orderedlist.一开始,我们需要选择这个list本身,这个list有一个ID叫“orderedlist”,通常的javascript写法是document.getElementById(orderedlist).在jQuery中,我们这样做:$(document).ready(function(){$(#orderedlist).addClass(red);});这里将starterkit中的一个CSS样式red附加到了orderedlist上(译者Keel注:参考测试包中的css目录下的core.css,其中定义了red样式)。因此,在你刷新了starterkit.html后,你将会看到第一个有序列表(orderedlist)背景色变成了红色,而第二个有序列表没有变化.现在,让我们添加一些新的样式到list的子节点.$(document).ready(function(){$(#orderedlistli).addClass(blue);});这样,所有orderedlist中的li都附加了样式blue。知博网zhiblog.comjQuery教程专题现在我们再做个复杂一点的,当把鼠标放在li对象上面和移开时进行样式切换,但只在list的最后一个element上生效。$(document).ready(function(){$(#orderedlistli:last).hover(function(){$(this).addClass(green);},function(){$(this).removeClass(green);});});还有大量的类似的CSS和XPath例子,更多的例子和列表可以在这里找到。(译者Keel注:入门看此文,修行在个人,要想在入门之后懂更多,所以这段话的几个链接迟早是要必看的!不会又要翻译吧...^_^!)每一个onXXX事件都有效,如onclick,onchange,onsubmit等,都有jQuery等价表示方法(译者Keel注:jQuery不喜欢onXXX,所以都改成了XXX,去掉了on)。其他的一些事件,如ready和hover,也提供了相应的方法。你可以在VisualjQuery找到全部的事件列表,在Events栏目下.用这些选择器和事件你已经可以做很多的事情了,但这里有一个更强的好东东!$(document).ready(function(){$(#orderedlist).find(li).each(function(i){$(this).html($(this).html()+BAM!+i);});});find()让你在已经选择的element中作条件查找,因此$(#orderedlist).find(li)就像$(#orderedlistli).each()一样迭代了所有的li,并可以在此基础上作更多的处理。大部分的方法,如addClass(),都可以用它们自己的each()。在这个例子中,html()用来获取每个li的html文本,追加一些文字,并将之设置为知博网zhiblog.comjQuery教程专题li的html文本。(译者Keel注:从这个例子可以看到.html()方法是获取对象的html代码,而.html('xxx')是设置'xxx'为对象的html代码)另一个经常碰到的任务是在没有被jQuery覆盖的DOM元素上call一些方法,想像一个在你用AJAX方式成功提交后的reset:$(document).ready(function(){//usethistoresetasingleform$(#reset).click(function(){$(#form)[0].reset();});});(译者Keel注:这里作者将form的id也写成了form,源文件有formid=form,这是非常不好的写法,你可以将这个ID改成form1或者testForm,然后用$(#form1)或者$(#testForm)来表示它,再进行测试。)这个代码选择了所有ID为form的元素,并在其第一个上call了一个reset()。如果你有一个以上的form,你可以这样做:$(document).ready(function(){//usethistoresetseveralformsatonce$(#reset).click(function(){$(form).each(function(){this.reset();});});});知博网zhiblog.comjQuery教程专题(译者Keel注:请注意一定要亲自将这些代码写在custom.js中并在starterkit.html上测试效果才能有所体会!必要时要观察starterkit.html的html代码)这样你在点击Reset链接后,就选择了文档中所有的form元素,并对它们都执行了一次reset()。还有一个你可能要面对的问题是不希望某些特定的元素被选择。jQuery提供了filter()和not()方法来解决这个问题。filter()以过滤表达式来减少不符合的被选择项,not()则用来取消所有符合过滤表达式的被选择项.考虑一个无序的list,你想要选择所有的没有ul子元素的li元素。$(document).ready(function(){$(li).not([ul]).css(border,1pxsolidblack);});这个代码选择了所有的li元素,然后去除了没有ul子元素的li元素。刷新浏览器后,所有的li元素都有了一个边框,只有ul子元素的那个li元素例外。(译者Keel注:请注意体会方便之极的css()方法,并再次提醒请务必实际测试观察效果,比方说换个CSS样式呢?再加一个CSS样式呢?像这样:$(li).not([ul]).css(border,1pxsolidblack).css(color,red);)上面代码中的[expression]语法是从XPath而来,可以在子元素和属性(elementsandattributes)上用作过滤器,比如你可能想选择所有的带有name属性的链接:$(document).ready(function(){$(a[@name]).background(#eee);});这个代码给所有带有name属性的链接加了一个背景色。(译者Keel注:这个颜色太不明显了,建议写成$(a[@name]).background(red);)更常见的情况是以name来选择链接,你可能需要选择一个有特点href属性的链接,这在不同的浏览器下对href的理解可能会不一致,所以我们的部分匹配(*=)的方式来代替完全匹配(=):知博网zhiblog.com$(document).ready(function(){jQuery教程专题$(a[@href*=/content/gallery]).click(function(){//dosomethingwithalllinksthatpointsomewhereto/conte
本文标题:jQuery的起点教程(PDF版)
链接地址:https://www.777doc.com/doc-2879388 .html