作者:Bear Bibeault_陈宁 页数:281 出版社:empty |
jQuery是目前最受欢迎的JavaScript/Ajax库之一, 能用最少的代码实现最多的功能。本书全面介绍j Query知识, 展示如何遍历HTML文档、处理事件、执行动画以及给网页添加Ajax。书中紧紧地围绕“用实际的示例来解释每一个新概念”这一宗旨, 生动描述了j Query如何与其他工具和框架交互以及如何生成jQuery插件。
对本书的赞誉“这是经过作者深思熟虑写出的一部关于j Query库的深入透彻的著作。”“瞬间解决复杂的UI问题。这是一本必读之作。”—j Query的创建者John Re sig-David Hayden, 微软MVP—Gregg Bolinger, VML公司——Jonathan Bloomer, Soap Creative公司——Ernest Friedman-Hill, JavaRanch管理员序“即使没有j Query背景知识, 你也能消化此书…读完这本书后, 你就可以实现动画效果,“穿越j Query的奇幻之旅。”——John C.Tyler, UBS投资银行“本书就像j Query本身——快速、实用、高效。”——Eric Pas car ello, 《Ajax实战》作者之一“事实证明, 这是j Query开发人员最喜欢的一本书。内容全面透彻而无冗词赘句。在展现j Query“JavaScript之风格要素。”——Joshua Heyer, Trane公司“无论你是初学者还是高级开发人员,都将从这本书中大受裨益。它因简洁而合理的结构形“j Query in Action是目前介绍j Query最新版本1.2的最及时的图书。”———javaranch.com“在使用j Query的过程中, 你是否曾因不少困惑和难题而停滞不前?这本书将为你扫清全程“这本书是众多技术书的典范:它要言不烦、言辞生动;每章之间环环相扣、彼此关联,有助于你高效地学习; 作者对知识点和示例条分缕析, 循序渐进地引导读者吸收j Query妙道。你很“虽然我读过不少图书评论, 却很少为别人写评论。但读完j Query n Action之后, 我不得不写点评论,将它推荐给你,因为它实在太棒了,是一个完美的案头伴侣。”-一切都是为了追求简单。当Web开发者想要编写几个简单交互的时候, 为什么非要编写一段又一段冗长而复杂、像书一般沉甸甸的代码呢?事实上, 复杂性从来就不是开发Web应用的必要在我开始着手创建j Query时, 就决定把重点放在小而简单的代码上, 它们服务于Web开发者日复一日处理的所有实际应用。阅读本书之后, 我非常高兴, 因为书中出色地体现了j Query库的地对j Query API进行调查研究和宣传推广。似乎过去每天我都收到来自他们的电子邮件或即时消息,请求解释、报告新发现的程序缺陷,或者建议该库可改进的地方。你可以放心,摆在你面前的这本书, 是作者经过深思熟虑写出的一部关于j Query库的深入透彻的著作。论。j Query之所以能够如此简单, 是因为它利用了插件体系结构。该体系结构提供许多有文档的扩展点, 插件可在这之上添加功能。通常那些功能虽然有用却不够通用, 才没有纳入j Query, 因此插件体系结构是十分必要的。本书讨论的几个插件, 比如Forms(表单) 、Dimension(尺寸)以及Live Query(实时查询) 插件, 已经被广泛采用, 其理由显而易见:它们的构造、文档编写和维护都是专家级的。请务必对怎样利用和构造插件给予特别关注, 因为插件的使用对于j Query创建你自己的插件, 随心所欲地使用j Query的实用工具函数。”“卓越JavaScript库之卓越向导。”优势的同时,也率真地坦露了其弱点。”“它已经成为我最好的朋友。不愧为上乘之作。”式提高了可读性。”障碍!”快就会发现,读此书如饮甘饴。”条件。这些原则。资源。是非常重要的。—slashdot.org-dzone.comJohn Re sigj Query的创建者-Andrew Siemer, OTX Research公司—-silver light books.net——A manz on读者评论本书特别注重以简洁的形式展示真实可用的代码,可作为想熟悉该库的人们的理想学习本书最让我满意的是Bear和Yehuda对库内部工作机制细节给予了极大的关注。他们不遗余力本书内容让我感到惊奇的是, 它还清晰地论述了j Query插件以及插件开发背后的策略和理拥有本书这样的资源, j Query项目一定会继续成长和成功。当你开始探索和利用j Query时,本书将助你一臂之力。
前言
本书的两位作者, 一位是头发斑白的老手, 他专注于编程的年代可追溯到FORTRAN当道之时,另一位是狂热的领域专家,他颖悟绝人,但如果离开了因特网,他就会对整个世界茫然不知所措有着如此迥异的背景,两位作者如何走到一起参与合作项目?我们出于对此极为有用的客户端工具的喜爱而走到一起,但采用的路线是如此不同,犹如白天和黑夜。我(Bear) 第一次听说j Query是在写作Ajax i Practice 的时候。图书出版流程的尾声是雷厉风行的编辑阶段。文字编辑审阅全书以保证语句清晰和语法正确,技术编辑保证技术正确性。至少对我来说,这是写书过程中最令人抓狂的紧张时刻,我最不愿听到的就是“你真的应该添加一他马上发表长篇大论, 告诉我这个崭新的库有多么奇妙, 真的应该与其他Aax启用客户端库我得到很多积极回应, 都很热情, 并且一致赞同j Query真的不同凡响。在一个下雨的星期天答案显然是, j Query。节全新的内容”我在Ajax in Prc ce中写的一章概述了几个支持Ajax的客户端库, 其中一个库我已经相当熟悉(Prototype) , 对其他库(Dojo工具箱和DWR) 我只好快速带过正当无数任务让我应接不暇的时候(保住一份工作,搞搞副业,处理家务琐事),技术编辑Valenti Cret taz不经意地爆一句:“你为什么不写一节关于j Query的内容?”起进行测评。我四处打听了一下:“有谁可曾听说jO wery库?”下午, 我花了大约4个小时在j Query网站阅读文档, 并编写小测试程序, 摸索一下j Query的行事方式。然后匆匆写出了一节新的内容,发送给技术编辑,看看我是否达到了要求。我问:“J什么?”这节内容得到了热情的赞扬, 然后我们继续工作直到最终完成Ajax in Practice一书(关于j Query的这节内容最后还发表在Dr Dobbs Journal的网站上) 。研究j Query时所了解到的知识, 于是着手更进一步学习, 并开始在Web项目中利用j Query。我还喜欢我所看到的效果。我开始替换前面项目中的老代码, 看j Query怎样简化页面。我实在是对它爱不释手。当尘埃落定, 对j Query的狂热已经在我的头脑深处根植了不屈的小种子。我喜欢此前在匆忙①中文版《Ajax实战:实例详解》, 人民邮电出版社, 2008。——编者注2前言我对这个新发现充满热忱,并且想与他人分享,我那时完全丧失了理智,竟然递交了出版本书的提议给Manning出版社。显然, 我那时一定是蛮有说服力的。(作为惩罚, 我让引起这一切麻烦的技术编辑Valentin, 继续做本书的技术编辑。我打赌这一定会给他带来深刻的教训。)就在那时, 编辑Mike Stephens问道:“这个项目你和Yehuda Katz合作, 怎么样?”“Ye henta是谁啊?”我问道……Yehuda参与这个项目的方式和我截然不同。他早在j Query连版本号也没有的时候就参与进去了。在他无意中发现Selectable s插件之后, 就对j Query核心库产生了兴趣。他对于(那时) 缺少在线文档多少有点失望, 于是开始猛刷维基网页, 并且建立了Visual j Query网站(visualjquery.com)。他还积极向Ruby社区推广j Query。趣和名叫Bear的人合作, 出一本关于j Query的书……不久以后, 他带头改善在线文档, 向j Query投稿, 管理插件体系结构和生态系统, 与此同时然后有一天他接到Manning出版社打来的电话(朋友把他的名字告知出版社) , 问他是否有兴尽管背景不同,经历迥异,各有所长,走到一起参与项目的方式也不一样,但我们组成了很棒的团队, 并且合作愉快。即便是地理上的距离(我在得克萨斯州的中心, 而Yehuda在加利福尼亚州的海边),也没有形成障碍。感谢电子邮件和即时消息带来的便利!快,恰如我们创作时的愉快。我们想把我们二人的知识和才华凝聚成一本很棒的、能提供大量知识的好书。希望你阅读愉但愿你在阅读中保持清醒,不似我等神魂颠倒。
致谢
你是否曾为电影结束时在屏幕上滚动的、仿佛没有尽头的致谢名单而感到惊讶甚至困惑?你是否曾怀疑真的需要那么多人去制作一部电影吗?类似地,或许很多人会为出版一本书需要那么多人参与而感到惊讶。但事实就是如此,才华各异的贡献者各展其才,努力协作,才能完成你手中的书(或者你在屏幕上阅读的电子书)。Manning出版社的全体职员孜孜不倦地和我们一起工作, 确保本书达到预期的高质量, 感谢他们的辛勤付出。没有他们, 就没有本书。本书的致谢名单不仅包括出版人Marjan Bace、编辑Mike Stephens, 也包括以下做出贡献的人员:Douglas Pud nick、Andrea Kau cher、Karen Te gt mayer、Katie Tenant、Megan Yockey、Dottie Marsico、Mary Pier gies、Tiffany Taylor、Denis Dalin nik、GabrielDobre scu以及Ron Tomich。到更正术语和代码错误,甚至帮忙组织本书章目。每通过一个审稿流程,都极大地改善了最终产品的质量。感谢花时甚多审阅本书的以下各位:Jonathan Bloomer、Valentin Cret taz、DenisKurile nko、RamaKrishna V avila la、Philip Hallstrom、Jay Blanchard、Jeff Cunningham、Eric Pas car ello、Josh Heyer、Gregg Bolinger、Andrew Siemer、John Tyler以及Ted Goddard还为本书的技术准确性做出了极大的贡献。对审稿人我们有说不尽的感谢话。他们帮忙确定本书的最终形式,从发现简单的排印错误,特别感谢Valentin Cret taz。作为本书的技术编辑, 他不但在多种环境下检查每段示例代码,Bear Bibeau lt这是我的第三本著作,要感谢的人物名单有长长的一大串,再次感谢javaranch.com网站的全体会员和职员。如果没有参加JavaRanch, 我就没有机会开始写作, 所以诚挚感谢Paul Wheaton和Kathy Sierra, 是他们启动了整件事情, 同时感谢给予我鼓励和支持的会员, 包括(但或许不局限于) Eric Pas car ello、Ben Souther、Ernest Friedman Hill、Mark Hersch berg以及Max Hab bibi。感谢Valenti Creta z, 不仅因为他是本书的技术编辑, 还因为他给我介绍了j Query。感谢我的同事Daniel Hedrick, 他自愿提供了本书后半部分用到的PHP示例。向我的爱侣Jay、宠物狗Litte Bear(我们起初没能给它起名叫Bear, 现在可以了吧?) 和Cozmo致以一如既往的温暖谢意。她和它们忍受了我的影子方式的存在,写书的数月之内虽然同居一室, 但我却很少把目光抽离MacBookPro电脑键盘, 抬头看上他们一眼。最后感谢我的合著者Yehuda Katz, 没有他, 就不可能有这个项目。2致谢Yehuda Katz首先, 感谢我的合著者Bear Bibeau lt, 我受益于他丰富的写作经验。他那天才般的写作技巧和给人深刻印象的解决专业出版物中疑难问题的能力,是本书得以成功的极大保障。向她要求这么长的写作时间,我感到很愧疚。本书得以完稿的功劳有她的一半,而且,她使我得以坚持走过本项目最艰难的部分。我爱你, Leah。说到本书得以完稿, 有必要感谢我深爱的妻子Leah, 她忍受了孤单的漫漫长夜和每个周末,显然, 如果没有j Query库, 就没有本书j Query in Action。感谢j Query的创建者John Re sig, 是他改变了客户端开发的面貌, 减轻了全球Web开发者的负担(不管你相信与否, 在中国、日本、法国等许多国家,我们拥有相当大的用户群)。我把他当成好朋友,他本人也是一位才华横溢的作者,帮助我完成了这个艰巨的任务。j Query的成长离不开令人钦佩的用户社区和核心团队成员, 包括开发组的Brandon Aaron和JornZaefferer, 推广组的Rey Bango和Karl Swedberg, 负责j Query UI(用户界面) 的Paul Baka us,与我一道在插件组工作的Klaus Hartl和Mike Alsup。这个很棒的程序员团队把j Query框架从紧凑、简单的核心操作基础库推进到世界级的JavaScript库, 使它完备到对你提出的几乎任何需求, 都有由用户贡献的(甚至是模块化的) 支持。我可能会漏掉很多j Query贡献者的名字, 有许许多多这样的人。可以这样说,没有围绕这个库而兴起的独一无二的社区,我就不会在这里写作,所以再怎么感谢你们也不过分。最后,我想感谢家人,自从我最近远离家乡,迁居到西海岸以来,就没能经常回去看望家人。在成长的岁月里,兄弟姐妹和我分享了亲密无间的手足情谊,并且家人对我的信任总是使我坚信能够完成任何事情。妈妈、Nikki、Abie, 还有Yaakov:谢谢你们, 我爱你们。
关于本书以少成多。平常和简单, 是本书的宗旨:帮助你学会以较少的脚本在Web应用页面上做更多的事情。本本书旨在帮助你利用j Query快速地起步和有力地奔跑, 并且希望你一路上享受到快乐。本书所有的示例代码和实验室页面都可以从http:/www.manning.com/bibeault下载°。我们可以喋喋不休地说一些营销话语告诉你本书有多好,但你不想浪费时间去读,对吧?你是什么使你踌躇不前?请往下阅读!本书适合广大的开发人员, 从初学者到高级Web开发者, 如果他们想要在页面上自如地运用所有Web开发者都渴望借助j Query带来的力量, 开发出令用户满意的Web应用, 他们将会从尽管Web开发新手也许会发现某些部分有点复杂, 但不应因此而停止钻研本书的步伐。我们不管是新手还是老手, 客户端程序员如果学会把j Query加入开发工具箱里, 都将大受裨益。①也可以从图灵网站www.uringbook.com本书网页免费注册下载。——编者注路线图思想, 然后快速前行到j Query API的基本概念。随后领你通过不同区域, 了解j Query如何能帮助你写出极好的客户端代码, 从事件处理一直到向服务器发起Ajax请求。最后, 我们会概览最流行的j Query扩展。书的两位作者, 一位是j Query贡献者和传道者, 另一位是满怀希望和热情的用户, 都确信j Query正是能够帮你达到目的,是当今最好的库。会讨论全部的核心j Query API, 以简单易懂的语法块形式呈现每个API方法, 描述方法的参数和返回值。书中还加入了有效地使用API的小示例; 并且对于“大概念”, 提供了我们称为“实验室页面”的材料。这些综合而有趣的实验室页面有助于你理解j Query方法在运行中的细微差别, 你就不必亲自去写一大堆代码了。真正想要的是伸臂探宝,不是吗?读者Java Srt, 写出很棒的、交互式的富因特网应用(Rch Inte metA pli at in) , 而不必为了实现这种应用从零开始写出所有必需的客户端代码。本书受益。准备了有关JavaScript基本概念的附录, 帮你充分发掘j Query的潜力, 只要理解了几个关键概念,读者将会发现j Query库是利于新手上手的——这一切都不牺牲提供给高级Web开发者的力量。我们确信本书的内容将帮助你快速掌握这门学问。关于本书本书的组织有助于你以快速的、高效的方式消化吸收j Query的知识。开头介绍j Query的设计第1章介绍j Query背后的原理, 以及它如何遵循一些现代编码原则, 例如, 不唐突的JavaScript。我们探讨采用j Query的理由, 纵览一下它如何运作, 同时了解一些主要概念, 如文档就绪处理程序、实用工具函数、DOM(文档对象模型) 元素创建, 以及j Query扩展的创建。第2章介绍j Query包装集(wrapped set) 的概念——j Query正是围绕这个核心概念运作的。我们探讨如何利用丰富强大的j Query选择器, 从页面文档中选择元素创建包装集(将被操作的DOM元素集合) 。我们会看到这些选择器尽管功能强大, 但还是会巧妙利用标准CSS表示法等我们已有的知识第3章研究如何利用j Query包装集来操作页面DOM。内容涵盖改变元素的样式和特性、设置元素内容、往各处移动元素以及处理表单元素。第4章展示如何利用j Query大幅度地简化页面上的事件处理。毕竟, 正是处理用户事件使得富因特网应用成为可能。那些不得不跨越不同浏览器实现而应对事件处理程序复杂性的人,一定会感激j Query带来的简易性。第5章的主题是动画与特效。这一章将探讨j Query如何使得创建动画效果不仅没有痛苦, 而且效率很高,充满乐趣第6章学习实用工具函数和j Query提供的标志。这章内容不仅适合页面作者, 也适合为j Query编写扩展和插件的人知识的人也能格外轻松地编写扩展, 同时了解为什么可以把任何可重用代码写成j Query扩展。第7章说明编写扩展和插件的过程。我们将学习j Query如何使不懂得JavaScript或j Query复杂第8章关注在富因特网应用开发中一个最重要的问题:发起Ajax请求。看j Query如何使人们不用费脑筋就能在页面上利用Ajax, 以及如何帮助我们避免在页面上使用Ajax带来的问题, 与此同时大幅度地简化最常用的Ajax交互(比如返回JSON构造) 。信息。同时这一章会研究能够处理表单和Ajax请求的、比核心j Query更强大的插件, 还有能够在第9章概括描述最流行、最强大的众多j Query插件, 确保我们知道如何查找更多有关插件的页面上实现拖放的插件附录主要写给那些想要进修JavaScript概念的人。附录强调JavaScript的重要概念, 如函数上下文、闭包等, 理解这些概念对在页面上最有效地利用j Query至关重要代码约定所有在代码清单或正文中的代码采用像这样(like this) 的字体, 以便和普通文本相区分。正文中的方法和函数的名称及属性、XML元素以及特性也用同样的字体表示
关于本书3在某些情况下为了适应本书的版面宽度,重新排版了原始源代码。总地来说,在编写原始代码时我们留意了页宽限制,但有时你会发现代码清单中的代码和从网站下载的代码存在格式上的细微差别。在少数情况下,长代码行如果重新格式化就会改变其含义,此时书中的代码清单会采用续行记号(→)。为了突出重要概念,许多代码清单附加了代码注释。在很多情况下,使用带圈的编号与随后正文中的解释(也有带圈数字)一一对应。代码下载本书所有示例的源代码(还有一些在书中没有出现的附加代码)都可以从http:/wwwmanning.com/jQueryinAction或http:/www.manning.com/bibeault下载°每章的代码示例以易于在本机Web服务器上发布的形式来组织。把下载代码解压到你选定的文件夹, 并且把此文件夹设置为Web应用文档根目录。启动页面是建立在Web应用根目录中的文件index.html。除了第8章的示例和第9章的几个示例以外, 大部分示例无需用到Web服务器, 直接用浏览器打开就可运行。文件chapter 8/tomcat.pdf将指导你轻松地设立Tomcat作为Web服务器, 去运行第8、9章的示例。示例在IE 6中一般也可以运行, 但可能遇到一些页面布局问题。不过需要注意的是, 所有的j Query代码在IE 6中运行都不会有问题, 是示例中的CSS导致了页面布局异常。因为本书的目标读者是专业的Web开发者, 所以我们假定所有读者都有一种或多种浏览器可以运行示例代码。所有示例在多种浏览器中经过测试, 包括IE 7、Firefox 2、Opera 9、Safari 2以及Camino 1.5。交流与反馈本书英文原版论坛是http:/www.manning.com/jQueryinActon或http://www.manning.com/bibeault。论坛提供了一个场合,让读者之间、读者与作者之间进行富有意义的对话。同时,本书的译者特意申请了电子邮箱jQueryin@126.com。读者在阅读本书的过程中发现的问题,或者有什么好的意见和建议都可以发送邮件到jQueryi@126.com及时与译者交流、探讨。读者还可以发送邮件到contact@turingbook.com及时与本书编辑取得联系。关于书名通过介绍、概览和“怎样去做”示例, 实战(I nAtion) 系列图书是为帮助学习和记忆而设计的。根据认知科学的研究,人们容易记住他们在自我推动的探索过程中所发现的事情虽然Manning出版社的工作人员没有谁是认知科学家, 但我们确信, 要使学习效果持久, 就必须探索、动手实践,并且饶有兴致地复述所学内容。只有在积极探索新事物之后,人们才能理①也可以从图灵网站wwwturingbook.com本书网页免费注册下载。——编者注关于本书解和记住新事物,也就是掌握新事物。人类在实践中学习,因此,示例驱动是实战系列图书不可缺少的一部分。示例驱动鼓励读者尝试新事物、编写新代码以及探索新想法。采用这个书名还有另一个更为现实的理由:我们的读者很忙。他们利用图书去完成工作任务或者解决问题。他们需要可以轻松地拿起和放下,想学的时候就能学到想学内容的书;他们需要在实际行动中帮得上忙的书。本系列的图书正是为这样的读者而设计的关于封面图片科》,1796年出版。那时为了乐趣而旅行是相对较新的现象,诸如此类的旅行指南很受欢迎,它们向旅游者和在家神游者介绍世界各地的人物风情,包括法国士兵、公务员、手工艺者、商人和农民的区域性服装样式和制服样式。这本旅行指南中的图片重现了两个世纪前丰富多样的地域风情。Manning出版社用这样的图本书封面上的人物肖像叫做“看守人”。这幅图片摘自法国的J.G.St.Saveur所著的《旅行百《旅行百科》中多姿多彩的图片生动地描绘了200年前世界各地的不同特色。在那个时代,即使两地仅相距几十英里,人们的服饰也可能是迥异的,服饰就标志着人们属于哪个地区。这本旅行指南活灵活现地反映出那个时代的隔离感和距离感,其实除了当今这个信息发达、无处不联系的时期以外,历史上的所有时期都存在这种隔离感和距离感。服装样式从那时起发生了很大变化,原先各个地域多种多样的服饰正在逐渐消失。现在通常很难区分两个不同地区的人。如果从好的一方面看,我们也许是在用文化上和视觉上的多样性来换取更加多元化的个人生活,或者是多元化的、充满趣味的才智人生片作为封面来赞美计算机行业的独创性、开拓性和无穷乐趣。
第1章引荐jQuery
Year MakModel1970 Toyota Corolla1983FordEXP1997 Chrysler Jeep Wrangler Sahara本章内容口为什么应当使用j Query口不唐突的JavaScript意味着什么口j Query的基本原理和概念口结合其他JavaScript库使用j QueryRun-Time也将纳入j Query。——编者注j Query来实现同样的功能怎样工作。JavaScript曾经长期被严谨的Web开发者当作“玩具”语言, 然而在过去数年间, 随着人们对富因特网应用和Ajax技术重新燃起兴趣, JavaScript重获威望。这门语言不得不快速成长, 因为客户端开发者已经抛弃剪切和粘贴JavaScript的方式, 转而采用方便快捷、功能完备的JavaScript库。这些库一次性地彻底解决了跨浏览器的难题, 并提供新颖的、改进了的Web开发方式。作为JavaScript库世界的后来者, j Query如暴风雪般横扫Web开发社区, 很快赢得MSNBC等大网站, 以及颇受关注的开源项目SourceForge、Trac和Drupal的支持。①和其他着重关注JavaScript灵活技巧的工具包相比, j Query力求改变Web开发者在创建页面的富功能时的思维方式。与其花时间杂耍JavaScript高级复杂的技巧, 设计者不如充分利用自己现有的CSS(Cascading StyleSheet, 层叠样式表) 、XHTML(Extensible Hypertext Markup Language,可扩展超文本标记语言) 及普通JavaScript的知识, 去直接操作页面元素, 实现更快的开发。在本书中, 我们将要深入考察j Query。我们先来看看j Query究竟给页面开发的盛宴带来了什么吧。1.1为什么是j Query如果你曾花过时间试着给页面增添动态功能,就会发现经常要遵循这样一种模式:选择一个元素或一组元素, 然后以某种方式对其进行操作。你可以隐藏或显示元素, 给元素增加CSS类,使元素活动起来,或者修改元素的特性。为了使这些常见任务变得简单而特意创造了该库。例如, 设计者利用Java Scr it给表格添加“斑马利用原始的JavaScript完成这些任务中的任何一个, 都会需要数十行的代码。j Query的创造者条纹”(利用形成对比的两种颜色使表格隔行突出显示)需要10多行代码,下面请看如何利用①此外, j Query已确定成为ASP.NET MVC和VisualStudio未来版本中的正式组成部分。诺基亚手机平台Web2第1章引荐j Query②并且简洁扼要却威力强大的j Query语句会脱口而出, 页面注入活力。下面简要探讨一下这个片段s( tabletr:nth-child(even) ) .add class( striped )底色为红色一1990 Chrysler Jeep Wrangler Sahara如果现在对你来说,这些代码看起来有点神秘,也不用担心。稍后你就会明白它的工作原理,我们标识页面中所有表格的所有偶数行(
1.2不唐突的JavaScripton click= document.getElementById('xyz') .style.color='red'; >Click Medocument.getElementById('teButton') .on click=make It Red};function make It Red() {document.getElementById('xyz') .stylered';不难看出, 按钮元素的样式, 包括标题的字体, 并没有使用标签和其他被否定的面向样式的标记, 而是通过CSS规则在页面表现出来。虽然此声明并没有把样式标记混入结构里但却把行为混入了结构里——作为按钮元素标记的一部分而嵌入的JavaScript, 当按钮被点击时将被执行(在本示例中, 就是按钮被点击时, 名为xyz的DOM元素会变为红色)就像在HTML文档中应该把样式从结构中分离出来一样, 出于完全相同的理由, 把行为从结构中分离出来,会带来同样多甚至更多的好处。如果你觉得本示例的代码很怪异, 别担心!附录A提供了一些JavaScript概念, 为了有效地利不唐突的Java S crt虽然是促进Web应用里明确分工的强大技巧, 但应用起来却不无代价。也这些并不坏,说服我们像对待服务端代码那样小心谨慎地去写客户端代码,是件好事!但那行为与结构相分离被称为“不唐突的Java Scr it”(Unobtrusive Java S crt) , 而j Query的发明者努力让该库能帮助页面作者易于在页面中实现这种分离。不唐突的JavaScript, 连同大量的j Query实践经验一起, 认为任何嵌入在HTML页面里的JavaScript表达式或语句, 不管是作为HTML元素的特性(比如on click) , 还是嵌入在页面的脚本块里, 都是不正确的。你也许会问:“但要是没有on click特性的话, 该如何设置按钮的行为呢?”考虑下面按钮元素的变化简单多了!但现在你却发现,按钮什么也干不了。不是把按钮的行为嵌入到按钮的标记里, 而是将它转移到页面节的脚本块里, 从而处于页面节的范围之外, 如下所示:我们把脚本放在页面的onload处理程序中, 给按钮元素的on click特性指派make It Red()函数。之所以将此脚本添加到onload处理程序中(而不是内联在结构标记中) , 是因为在试图操作按钮元素之前, 必须先确认按钮元素的存在(在1.3.3节将看到j Query如何提供更好的地方来存放此类代码)。用j Query, 你必须理解这些概念。在本章的剩余部分里, 将会探讨j Query如何使我们能以更加轻松、简短和通用的方式来编写前面的代码。许你已经注意到, 比起将行为放入按钮的标记来, 不唐突的Java Scr pt需要多出好几行脚本去达到同样的目的。不唐突的Java Srt不仅可能增加需要编写的脚本量, 还要求客户端脚本遵守某些规则,并且应用好的编码模式。要做很多额外的工作——如果没有j Query的话。5更为困难的JavaScript问题, 比如在执行页面操作之前必须等待页面加载完毕之类的问题, 已经被6DOM元素的数组。该对象拥有大量预定义的有用方法, 能够作用于该组元素。4第1章引荐j QueryQuery(selector如同前面提到的那样, j Query团队特意使j Query关注以下任务:使得在页面编程中使用不唐突的JavaScript技巧成为简单快乐的事儿, 而无需耗费大量精力写大块代码。我们将发现有效地使用j Query, 可以编写更少的代码在页面上实现更多的功能。在其核心, j Query重点放在从HTML页面里获取元素并对其进行操作。如果你熟悉CSS, 就会很清楚选择器的威力, 通过元素的特性或元素在文档中的位置去描述元素组。有了j Query, 你j Query把确保代码能跨越所有主要浏览器以一致的方式工作, 摆在了高优先级的位置。许多我们一旦发现该库需要添加点什么功能, 就有j Query开发者已经内建了简单而有力的、用于扩展功能的方法。许多j Query编程新手发现他们第一天就通过扩展j Query而将多功能性付诸实践。为了使设计和内容分离而把CSS引入Web技术的时候, 需要以某种方式从外部样式表中引用页面元素组。开发出来的方法就是通过使用选择器——基于元素的特性或元素在HTML文档中的引用所有嵌套于
第1章介绍j Query背后的原理, 以及它如何遵循一些现代编码原则, 例如, 不唐突的JavaScript。 我们探讨采用j Query的理由, 纵览一下它如何运作, 同时了解一些主要概念, 如文档就绪处理程 序、实用工具函数、DOM(文档对象模型) 元素创建, 以及j Query扩展的创建。 第2章介绍j Query包装集(wrapped set) 的概念——j Query正是围绕这个核心概念运作的。我 们探讨如何利用丰富强大的j Query选择器, 从页面文档中选择元素创建包装集(将被操作的DOM 元素集合) 。我们会看到这些选择器尽管功能强大, 但还是会巧妙利用标准CSS表示法等我们已 有的知识 第3章研究如何利用j Query包装集来操作页面DOM。内容涵盖改变元素的样式和特性、设置 元素内容、往各处移动元素以及处理表单元素。 第4章展示如何利用j Query大幅度地简化页面上的事件处理。毕竟, 正是处理用户事件使得 富因特网应用成为可能。那些不得不跨越不同浏览器实现而应对事件处理程序复杂性的人,一定 会感激j Query带来的简易性。 第5章的主题是动画与特效。这一章将探讨j Query如何使得创建动画效果不仅没有痛苦, 而 且效率很高,充满乐趣 第6章学习实用工具函数和j Query提供的标志。这章内容不仅适合页面作者, 也适合为j Query 编写扩展和插件的人 知识的人也能格外轻松地编写扩展, 同时了解为什么可以把任何可重用代码写成j Query扩展。 第7章说明编写扩展和插件的过程。我们将学习j Query如何使不懂得JavaScript或j Query复杂 第8章关注在富因特网应用开发中一个最重要的问题:发起Ajax请求。看j Query如何使人们 不用费脑筋就能在页面上利用Ajax, 以及如何帮助我们避免在页面上使用Ajax带来的问题, 与此 同时大幅度地简化最常用的Ajax交互(比如返回JSON构造) 。 信息。同时这一章会研究能够处理表单和Ajax请求的、比核心j Query更强大的插件, 还有能够在 第9章概括描述最流行、最强大的众多j Query插件, 确保我们知道如何查找更多有关插件的 页面上实现拖放的插件 附录主要写给那些想要进修JavaScript概念的人。附录强调JavaScript的重要概念, 如函数上 下文、闭包等, 理解这些概念对在页面上最有效地利用j Query至关重要
《JQuery实战_Bear Bibeault_陈宁》目录