jQuery

JQuery是继 prototype之后又一个优秀的 Javascript库。它是轻量级的js库 ,它兼容 CSS3,还兼容各种浏览器( IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。jQuery使用户能更方便地处理 HTML( 标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供 AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的 插件可供选择。jQuery能够使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需要定义id即可。
jQuery是一个兼容多浏览器的 javascript库,核心理念是write less,do more(写得更少,做得更多)。jQuery在2006年1月由美国人 John Resig在纽约的 barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,由Dave Methvin率领团队进行开发。如今,jQuery已经成为最流行的javascript库,在世界前10000个访问最多的网站中,有超过55%在使用jQuery。
jQuery是免费、开源的,使用 MIT许可协议。jQuery的语法设计可以使开发更加便捷,例如操作 文档对象、选择 DOM元素、制作动画效果、事件处理、使用 Ajax以及其他功能。除此以外,jQuery提供API让开发者编写插件。其模块化的使用方式使开发者可以很轻松的开发出功能强大的静态或动态网页。
jQuery,顾名思义,也就是JavaScript和查询(Query),即是辅助JavaScript开发的库。
中文名
极快瑞
外文名
jQuery
核心理念
write less,do more
发布时间
2006年1月
发布人
John Resig
发布地点
美国纽约
最新版本
jQuery 3.1.0
第一个版本
jQuery 1.0(2006年8月)

目录

  1. 1历史
  2. 2特点
  3. 3历史版本
  4. jQuery 1.0
  5. jQuery 1.1
  6. jQuery 1.1.3
  7. jQuery 1.2
  1. jQuery 1.2.6
  2. jQuery 1.3
  3. jQuery 1.3.2
  4. jQuery 1.4
  5. jQuery 1.5
  6. jQuery 1.7
  7. jQuery 1.7.2
  8. jQuery 1.8.3
  1. jQuery 2.0
  2. jQuery2.1.0
  3. jQuery2.1.1
  4. 4使用方法
  5. 5实例
  6. 选择器
  7. 事件处理
  1. 集合操作
  2. 动态特效
  3. AJAX
  4. 6插件机制
  5. 7控件

历史

编辑
大概在 1992 年,一家称作 Nombas 的公司开发了一种叫做 C 减减(C-minus-minus,简称 Cmm)的嵌入式脚本语言。Cmm 背后的理念很简单:一个足够强大可以替代宏操作(macro)的脚本语言,同时保持与 C (和 C ++)足够的相似性,以便开发人员能很快学会。这个脚本语言捆绑在一个叫做 CEnvi 的共享软件中,它首次向开发人员展示了这种语言的威力。
Nombas 最终把 Cmm 的名字改成了 ScriptEase,原因是后面的部分(mm)听起来过于消极,同时字母 C “令人害怕”。
当 Netscape Navigator 崭露头角时,Nombas 开发了一个可以嵌入网页中的 CEnvi 的版本。这些早期的试验被称为 Espresso Page(浓咖啡般的页面),它们代表了第一个在万维网上使用的客户端语言。而 Nombas 丝毫没有料到它的理念将会成为万维网的一块重要基石。
当网上冲浪越来越流行时,对于开发客户端脚本的需求也逐渐增大。此时,大部分因特网用户还仅仅通过 28.8 kbit/s 的调制解调器连接到网络,即便这时网页已经不断地变得更大和更复杂。而更加加剧用户痛苦的是,仅仅为了简单的表单有效性验证,就要与服务器进行多次地往返交互。设想一下,用户填完一个表单,点击提交按钮,等待了 30 秒的处理后,看到的却是一条告诉你忘记填写一个必要的字段。
那时正处于技术革新最前沿的 Netscape,开始认真考虑开发一种客户端脚本语言来解决简单的处理问题。
当时工作于 Netscape 的 Brendan Eich,开始着手为即将在 1995 年发行的 Netscape Navigator 2.0 开发一个称之为 LiveScript 的脚本语言,当时的目的是在浏览器和服务器(本来要叫它 LiveWire)端使用它。Netscape 与 Sun 及时完成 LiveScript 实现。
就在 Netscape Navigator 2.0 即将正式发布前,Netscape 将其更名为 JavaScript,目的是为了利用 Java 这个因特网时髦词汇。Netscape 的赌注最终得到回报,JavaScript 从此变成了因特网的必备组件。
因为 JavaScript 1.0 如此成功,Netscape 在 Netscape Navigator 3.0 中发布了 1.1 版。恰巧那个时候,微软决定进军浏览器,发布了 IE 3.0 并搭载了一个 JavaScript 的克隆版,叫做 JScript(这样命名是为了避免与 Netscape 潜在的许可纠纷)。微软步入 Web 浏览器领域的这重要一步虽然令其声名狼藉,但也成为 JavaScript 语言发展过程中的重要一步。
在微软进入后,有 3 种不同的 JavaScript 版本同时存在:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。与 C 和其他编程语言不同的是,JavaScript 并没有一个标准来统一其语法或特性,而这 3 种不同的版本恰恰突出了这个问题。随着业界担心的增加,这个语言的标准化显然已经势在必行。
2006年1月,jQuery的第一个版本面世,至今已经有10年多了(注:这个时间点是截止至出书时间)。虽然过了这么久,但它依然以其简洁、灵活的编程风格让人一见倾心。在本篇文章中,我们将讲述jQuery的发展历史,让读者对jQuery有更多的了解。
在jQuery迅速发展的同时,一些大的厂商也看中了商机。2009年9月,微软和诺基亚公司正式宣布支持开源的jQuery库,另外,微软公司还宣称他们将把jQuery作为Visual Studio工具集的一部分。他将提供包括jQuery的智能提示、代码片段、示例文档编制等内容在内的功能。微软和诺基亚公司将长期成为jQuery的用户成员,其他成员还有Google,Intel,IBM,Intuit等公司。
  2009年1月,jQuery 1.3版发布,它使用了全新的选择符引擎Sizzle,在各个浏览器下全面超越其他同类型JavaScript框架的查询速度,程序库的性能也因此有了极大提升。这一版本的第2个变化就是提供live()方法,使用live()方法可以为当前及将来增加的元素绑定事件,在1.3版之前,如果要为将来增加的元素绑定事件,需要使用livequery插件,而在1.3版中,可以直接用live()方法。 2005年8月,John Resig提议改进Prototype的“Behaviour”库,于是他在blog上发表了自己的想法,并用了3个例子做说明。
  第一个例子是为元素注册一个事件:
  Behaviour.register({
  '#example li': function(e){
  e.onclick = function(){
  this.parentNode.removeChild(this);
  }
  }
  });
  他认为应该改写为:
  $('#example li').bind('click',function(){
  this.parentNode.removeChild(this);
  });
  第二个例子是为不同的元素注册不同的事件:
  Behaviour.register({
  'b.someclass' : function(e){
  e.onclick = function(){
  alert(this.innerHTML);
  }
  },
  '#someid u' : function(e){
  e.onmouseover = function(){
  this.innerHTML = "BLAH!";
  }
  }
  });
  他认为应该改写为:
  $('b.someclass').bind('click',function(){
  alert(this.innerHTML);
  });
  $('#someid u').bind('mouseover',function(){
  this.innerHTML = 'BLAH!';
  });
  第三个例子是为不断变化的元素注册不同的事件:
  Behaviour.register({
  '#foo ol li': function(a) {
  a.title = "List Items!";
  a.onclick = function(){ alert('Hello!'); };
  },
  '#foo ol li.tmp': function(a) {
  a.style.color = 'white';
  },
  '#foo ol li.tmp .foo': function(a) {
  a.style.background = 'red';
  }
  });
  他认为应该改写为:
  $('#foo ol li')
  .set('title','List Items!')
  .bind('click',function(){ alert('Hello!'); })
  .select('.tmp')
  .style('color','white')
  .select('.foo')
  .style('background','red');
  这些代码也是jQuery语法的最初雏形。当时John的想法很简单:他发现这种语法相对现有的JavaScript库更为简洁。但他没想到的是,这篇文章一经发布就引起了业界的广泛关注。于是John开始认真思考着这件事情(编写语法更为简洁的JavaScript程序库),直到2006年1月14日,John正式宣布以jQuery的名称发布自己的程序库。随之而来的是jQuery的快速发展。
  2006年8月,jQuery的第一个稳定版本,并且已经支持CSS选择符、事件处理和AJAX交互。
  2007年7月,jQuery 1.1.3版发布,这次小版本的变化包含了对jQuery选择符引擎执行速度的显著提升。从这个版本开始,jQuery的性能达到了Prototype、Mootools以及Dojo等同类JavaScript库的水平。同年9月,jQuery 1.2版发布,它去掉了对XPath选择符的支持,原因是相对于CSS语法它已经变得多余了。这一版能够对效果进行更为灵活的定制,而且借助新增的命名空间事件,也使插件开发变得更容易。同时,jQuery UI项目也开始启动,这个新的套件是作为曾经流行但已过时的Interface插件的替代项目而发布的。jQuery UI中包含大量预定义好的部件(widget),以及一组用于构建高级元素(例如可拖放、拖拽、排序)的工具。
2010年2月,jQuery 1.4.2版发布,它新增了有关事件委托的两个方法:delegate()和undelegate()。delegate()用于替代1.3.2中的live()方法。这个方法比live()来的方便,而且也可以达到动态添加事件的作用。比如给表格的每个td绑定hover事件

特点

编辑
  1. 动态特效
  2. AJAX
  3. 通过插件来扩展
  4. 方便的工具 - 例如浏览器版本判断
  5. 渐进增强
  6. 链式调用
  7. 多浏览器支持,支持 Internet Explorer6.0+、Opera9.0+、 Firefox2+、 Safari2.0+、 Chrome1.0+(在2.0.0中取消了对Internet Explorer6,7,8的支持)

历史版本

编辑

jQuery 1.0

(2006年8月):该库的第一个稳定版本,已经具有了对CSS选择符、事件处理和AJAX交互的稳健支持。

jQuery 1.1

(2007年1月):这一版大幅简化了API。许多较少使用的方法被合并,减少了需要掌握和解释的方法数量。

jQuery 1.1.3

(2007年7月):这次小版本变化包含了对jQuery选择符引擎执行速度的显著提升。从这个版本开始,jQuery的性能达到了Prototype、Mootools以及Dojo等同类JavaScript库的水平。

jQuery 1.2

(2007年9月):这一版去掉了对XPath选择符的支持,原因是相对于CSS语法它已经变得多余了。这一版能够支持对效果的更灵活定制,而且借助新增的命名空间事件,也使 插件开发变得更容易。
jQuery UI(2007年9月):这个新的插件套件是作为曾经流行但已过时的Interface插件的替代项目而发布的。jQuery UI中包含大量预定义好的部件(widget),以及一组用于构建高级元素(例如可拖放的界面元素)的工具。

jQuery 1.2.6

(2008年5月):这一版主要是将Brandon Aaron开发的流行的Dimensions 插件的功能移植到了核心库中。

jQuery 1.3

(2009年1月):这一版使用了全新的选择符引擎 Sizzle,库的性能也因此有了极大提升。这一版正式支持事件委托特性。

jQuery 1.3.2

(2009年2月):这次小 版本升级进一步提升了库的性能,例如改进了:visible/:hidden选择符、.height()/.width()方法的底层处理机制。另外,也支持查询的元素按文档顺序返回。

jQuery 1.4

(2010年1月14号):对代码库进行了内部重写组织,开始建立一些风格规范。老的core.js文件被分为attribute.js,css.js,data.js,manipulation.js,traversing.js和queue.js;CSS和attribute的逻辑分离。
⒈4重要新特性
·常用方法的性能大幅提升:重写了大部分较早期的函数;
·更容易使用的设置函数(setter function):为所有对象新增了许多易用的设置函数;
·对Ajax的改进:引入了许多Ajax和JSON处理方面的更新,包括HTML5元素的序列化;
·attribute(改进了.attr()的性能)、jQuery()核心函数、CSS(.css()性能有两倍提升)、特效和事件、DOM操作等也有显著改进

jQuery 1.5

(2011年1月31日):该版本修复了83个bug,解决了460个问题。重大改进有:重写了Ajax模块;新增延缓对象(Deferred Objects);jQuery替身——jQuery.sub();增强了遍历相邻节点的性能;jQuery开发团队构建系统的改进。
1.5新版本
美国时间2011年1月31日John Resig在jQuery官方博客发表文章,宣布jQuery 1.5正式版已经如期开发完成,可以下载使用。压缩版本jQuery Minified29KB,不压缩版本jQuery Regular(用于阅读和调试)207KB。由于jQuery已经成为目前最流行的JavaScript库,得到广泛的支持,新版本的发布当然非常引人注目。
重要变化:
1. Ajax重写
Ajax模块完全进行了重写。新增一个jXHR对象,为不同浏览器内置的XMLHttpRequest提供了一致的超集。对于XMLHttpRequest之外的传输机制,比如 JSONP请求,jXHR对象也可以进行处理。(详情可以参见:jQuery.ajax文档)
此外,系统的可扩展性大大增强,可以附加各种数据处理器、过滤器和传输机制,为开发新的Ajax 插件提供了方便。
2. 延迟对象
延迟对象(Deferred Object,jQuery.Deferred对象)是一个可链接的(chainable)实用工具对象,实现了Promise接口,可以在回调队列中注册多个回调、调用回调队列并转发任何同步/异步函数的成败状态。正如Using Deferreds in jQuery 1.5一文中说明的,其结果是在jQuery中能够将依赖于某个任务(事件)结果的逻辑与任务本身解耦了。这一点在JavaScript中其实并不新鲜,Mochikit和Dojo等已经实现有些日子了。由于jQuery 1.5的Ajax模块内置使用了延迟对象,因此通过jQuery编写Ajax程序将自动获得这一功能。
开发人员借此可以使用无法立即获得的返回值(如异步Ajax请求的返回结果),而且第一次能够附加多个事件处理器。
例如,使用了新的jQuery内部Ajax API就可以实现下面的代码了:
// Assign handlers immediately after making the request,// and remember the jxhr object for this request var jxhr = $.ajax({ url: "example.php" }) .success(function() { alert("success"); }) .error(function() { alert("error"); }) .complete(function() { alert("complete"); });// perform other work here ... // Set another completion function for the request above jxhr.complete(function(){ alert("second complete"); });
此外,使用jQuery.Deferred还可以开发自己的延迟对象。更多详情参见:延迟对象文档。
3. jQuery.sub()
jQuery 1.5提供了一种创建和修改jQuery副本的方式。可以用来添加不向外部公开的方法,或者对jQuery的某些方法进行重新定义以提供新功能,或者提供更好的封装、避免 名称空间冲突。当然,也可以用来开发 插件,但Resig强烈建议在开发插件之前,先考虑jQuery UI widget工厂。
值得注意的是,sub函数并不提供真正的隔离,所有方法、数据、调用仍然依靠jQuery本身来支持。
4. 遍历性能提高
在新版本中.children(),.prev(),.next()几个常用的遍历函数性能有了显著提高。
5. 内部开发系统
John Resig还特别提到了jQuery团队内部开发系统的两点改变:一是服务器端用Node.js替换了老的Java/Rhino系统,使得团队可以专注于JavaScript环境的新变化;二是所用的 代码优化程序从Google Closure切换到UglifyJS,新工具的压缩效果非常令人满意。
jQuery 1.5.2 在1.5的基础上修正的大量的bug
jQuery 1.7b

jQuery 1.7

2011年09月29日jQuery 1.7 的第一个 beta 测试版本,该版本修复了超过 50 个的问题以及带来一些新特性。
2011年11月4日jQuery1.7正式版发布。
新版本包含了很多新的特征,特别提升了事件委派时的性能尤其是在IE7下。
新增及改进项:
⒈新的事件 APIs: .on() and .off();
⒉提升了事件委派时的性能有了大幅度的提升,尤其是在IE7下;
⒊更好的在 IE 6/7/8 上支持 HTML5;
⒋切换动画更加直观;
⒌匿名模块定义 AWD
⒍jQuery.Deferred
⒎jQuery.isNumeric()
被删除的方法:
event.layerX and event.layerY
jQuery.isNaN()

jQuery 1.7.2

2012年03月24日jQuery 1.7.2正式版发布。
该版本在1.7.1的基础上修复了大量的bug,并改进了部分功能。而相比于1.7.2 RC1,只修复了一个bug。值得注意的是:如果你正在使用jQuery Mobile,请使用最新的jQuery 1.7.2和jQuery Mobile 1.1这两个版本,因为之前的jQuery Mobile版本还基于jQuery core 1.7.1或更早的版本。

jQuery 1.8.3

2012年11月14日 jQuery 1.8.3 发布,修复 bug 和性能衰退问题
IE8中的HTML相关Bug
jQuery 1.8.2在IE9中调用ajax失败的问题
jQuery 1.7.1不能正确地设置IE7中克隆元素的tabindex属性
压缩的JS文件包含非ASCII字符
如果body样式设置为display:none,则$('body').show()无法工作
在IE9中element.css('filter')返回不明确
在Android 2.3.4的浏览器中,jQuery 1.8.1转场效果崩溃
在iPad上缩放一个灯箱效果后,所有动画效果失效
从1.3.2升级到1.8.2版本后,出现Uncaught TypeError错误
在Chrome和Safari中,无法正确检测包含可编辑内容的DIV的焦点

jQuery 2.0

2013年3月 jQuery 2.0 Beta 2 发布
据jQuery官方博客3月消息,jQuery 2.0 Beta 2 发布。
根据用户对jQuery 2.0 Beta 1 版本的反馈,Beta 2 版做了一些修改。jQuery官方表示,非常需要用户来测试 Beta 2 版,最好同时也能向他们反馈提交建议。
他们相信,Beta 2 版已非常稳定,值得一试,不需要等 2.0 的最终版本。
jQuery 团队在官博中再次提醒用户,jQuery 2.0 不再支持IE 6/7/8 了,但是 jQuery 1.9 会继续支持。因为旧版 IE 浏览器在整个互联网中还有很大部分市场,所以他们非常期望大部分网站能继续使用 jQuery 1.x 一段时间。jQuery 团队也将同时支持 jQuery 1.x 和 2.x 。1.9 和 2.0 版的 API 是相同的,所以不必因为你们网站还在用 jQuery 1.9,就感觉好像错过了什么,或者是落后了。
如果你想继续支持 IE 6/7/8,并且又想尝试 jQuery 2.0,那你可以额外加上一些代码。除了老版的 IE,其他所有浏览器都将使用第二脚本,忽略第一个。
在很多环境中,jQuery 2.0 应当都表现的很好。如下:
Google Chrome plugins
Mozilla XUL apps and Firefox extensions
Firefox OS apps
Chrome OS apps
Windows 8 Store (“Modern/Metro UI”) apps
BlackBerry 10 WebWorks apps
PhoneGap/Cordova apps
Apple UIWebView class
Microsoft WebBrowser control
Cheerio or jsdom with Node.js
Intranet applications
2013年4月18日 jQuery 2.0正式版发布
  • 不再支持IE 6/7/8:如果在IE9/10版本中使用“兼容性视图”模式也将会受到影响。
  • 更轻更快:2.0版本文件与1.9.1相比小了12%。
  • 可以构建一个更小、更轻量的版本。
  • jQuery 2.0 API完全兼容jQuery 1.9 API。
jQuery 1.9.1汉化版2013年2月23日发布,由网友翻译非官方

jQuery2.1.0

2014年1月24日,jQuery2.1.0版发布 [1]  

jQuery2.1.1

2014年5月1日,jQuery2.1.1版发布 [2]  

使用方法

编辑
jQuery可以下载使用,有两个版本的 jQuery 可供下载
Production version - 用于实际的网站中,已被精简和压缩。
Development version - 用于测试和开发(未压缩,是可读的代码)
jQuery 1.8.0版时压缩前后的对比
文件
行数
大小
jquery-1.8.0.min.js
2
91KB
jquery-1.8.0.js
9228
254KB
这两个版本都可以从 jQuery.com官网下载。
也可以从多个公共服务器中选择引用。把jQuery存储在CDN公共库上可加快网站载入速度,CDN公共库是指将常用的JS库存放在CDN节点,以方便广大开发者直接调用。与将JS库存放在服务器单机上相比,CDN公共库更加稳定、高速。国外的有 Google、 Microsoft等多家公司给jQuery提供CDN服务,国内由新浪云计算( SAE) 、百度云(BAE)等提供
下面就介绍几个相对来说比较稳定的CDN。并且有jquery1.1至2.0所有版本下载分享
Google CDN
1
"text/javascript" src= "http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js" >
提示:通过 Google CDN 来获得最新可用的版本:
如果您观察上面的 Google URL - 在 URL 中规定了 jQuery 版本 (1.8.0)。如果您希望使用最新版本的 jQuery,也可以从版本字符串的末尾(比如本例 1.8)删除一个数字,谷歌会返回 1.8 系列中最新的可用版本(1.8.0、1.8.1 等等),或者也可以只剩第一个数字,那么谷歌会返回 1 系列中最新的可用版本(从 1.1.0 到 1.9.9)。
Microsoft CDN [3]  
1
"text/javascript" src= "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.0.min.js" >
提示:使用谷歌或微软的 jQuery,有一个很大的优势:
许多用户在访问其他站点时,已经从谷歌或微软加载过 jQuery。所有结果是,当他们访问您的站点时,会从缓存中加载 jQuery,这样可以减少加载时间。同时,大多数 CDN 都可以确保当用户向其请求文件时,会从离用户最近的服务器上返回响应,这样也可以提高加载速度。
新浪 CDN [4]  
1
"text/javascript" src= "http://libs.baidu.com/jquery/2.0.3/jquery.min.js" >
百度 CDN [5]  
1
"text/javascript" src= "http://libs.baidu.com/jquery/2.0.3/jquery.min.js" >
为了保险起见,当无法从CDN服务器上获取jQuery时,则使用本地jQuery
1
"text/javascript" >window.jQuery||document.write( '<\/script>' );
在Wordpress主题中使用的方法为
1
"text/javascript" >window.jQuery||document.write( '\x3C/script>' )
注意事项
1、 Wordpress内置jQuery库,其末尾防止JS库冲突而加入的jQuery.noConflict()使得主题中所有jQuery代码都要做一些小修改,更可能导致一些插件效果失效。wordpress建议下载官方jQuery-Min库放到当前主题目录下调用,不要使用wp-includes里面的库。
2、Google CDN库的地址采用了协议相对路径,它可以很好的解决https引起的一些问题,具体可以看Paul Irish的介绍,当然你依旧可以使用带“http:”的路径。
3、许多网站都采用Google CDN提供的jQuery库,使用它可以得到出色的缓存效果。
4、把jQuery代码统统放到页面底部可以提高载入速度。
5、使用 HTML5重构的页面可省略掉 type="text/javascript"。
6、推荐使用国内CDN公共库,速度更快,稳定性更高。

实例

编辑
为元素添加单击
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
 
 
 
 

Ifyouclickonme,Iwilldisappear.

 
 
结果:隐藏页面内的

标签 [6]  

选择器

jQuery 使用 sizzle引擎,支持css选取,Xpath选取等方式。
$("p") 选取全部

元素。

$("p.intro") 选取所有包含class为"intro"的

元素。

$("#demo") 选取 id为"demo" 的元素。
$("[href]") 选取所有带有 href 属性的元素。
$("[href='#']") 选取所有带有 href 值等于 "#" 的元素。
$("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素。
$("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。
$("[href^='/imgaes/']") 选取所有 href 值以 /imgaes/" 开头的元素。
更多详细信息请参见jQuery API的Selectors部分。

事件处理

直接绑定指定事件,事件类型即方法名,支持click、focus、blur、submit等。
$("#button").click(function(){
//script goes here
});
用on来绑定事件,off来解绑事件,第一个参数为事件名,第二个参数为回调函数。1.7.2版本开始支持。
$("#button").on('click',function(){
//script goes here
});
在1.7.1或更早版本,需要用bind/unbind(常规绑定),live/die(预绑定)来替代on/off。
更多详细信息请参见jQuery API的Events部分。
jQuery还支持如下方法:
.blur() 表单元素失去焦点。
.change() 表单元素的值发生变化
.click() 鼠标单击
.dblclick() 鼠标双击
.focus() 表单元素获得焦点
.focusin() 子元素获得焦点
.focusout() 子元素失去焦点
.hover() 同时为mouseenter和mouseleave事件指定处理函数
.keydown() 按下键盘(长时间按键,只返回一个事件)
.keypress() 按下键盘(长时间按键,将返回多个事件)
.keyup() 松开键盘
.load() 元素加载完毕
.mousedown() 按下鼠标
.mouseenter() 鼠标进入(进入子元素不触发)
.mouseleave() 鼠标离开(离开子元素不触发)
.mousemove() 鼠标在元素内部移动
.mouseout() 鼠标离开(离开子元素也触发)
.mouseover() 鼠标进入(进入子元素也触发)
.mouseup() 松开鼠标
.ready() DOM加载完成
.resize() 浏览器窗口的大小发生改变
.scroll() 滚动条的位置发生变化
.select() 用户选中文本框中的内容
.submit() 用户递交表单
.toggle() 根据鼠标点击的次数,依次运行多个函数
.unload() .当用户离开页面时,会发生 unload 事件。
[7]  

集合操作

$(function(){
var tbody = "";
  //------------遍历对象 .each的使用-------------
  //对象语法JSON数据格式(当服务器端回调回来的对象数据格式是json数据格式,必须保证JSON的格式要求,回调的对象必须使用 eval函数进行转化(否则将得不到Object)。本文不作详细介绍服务器端回调的数据问题,我们将直接自定义对象)
  var obj =[{"name":"项海军","password":"123456"}];
  $("#result").html("------------遍历对象 .each的使用-------------");
  alert(obj);//是个object元素
  //下面使用each进行遍历
  $.each(obj,function(n,value) {
  alert(n+' '+value);
  var trs = "";
  trs += "" + value.name +" " + value.password +"";
  tbody += trs;
  });
$("#project").append(tbody);
  });

动态特效

较快速度的淡入
$("#msg").show("fast");
较慢速度的淡出
$("#msg").hide("slow");
淡入淡出
$("#msg").fadeIn();
$("#msg").fadeOut();
带参数的淡入淡出
$(selector).fadeIn(speed,callback);
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是 fading 完成后所执行的函数名称。
滑动
$(selector).slideDown(speed,callback);
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是滑动完成后所执行的函数名称。
动画
$(selector).animate({params},speed,callback);
必需的 params 参数定义形成动画的 CSS 属性。
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是动画完成后所执行的函数名称。
以上代码实现一个id为Msg的jQuery对象的渐入和淡出。函数接受的参数除了快慢等,还可以接收 整型,作为渐入或淡出的完成时间,单位为ms。更多详细信息请参见jQuery API的Effects部分。

AJAX

jQuery 提供多个与 AJAX 有关的方法 [7]  。
通过 jQuery AJAX 方法,您能够使用 HTTP Get 和 HTTP Post 从远程服务器上请求文本、 HTML( 标准通用标记语言下的一个应用)、 XML(标准通用标记语言下的一个子集) 或 JSON - 同时您能够把这些外部数据直接载入网页的被选元素中。
  • jQuery - AJAX load() 方法
jQuery load() 方法是简单但强大的 AJAX 方法。
load() 方法从服务器加载数据,并把返回的数据放入被选元素中。
语法:
1
2
3
4
5
$(
selector
).load(
URL,data,callback
);
必需的 URL 参数规定您希望加载的 URL。
可选的 data 参数规定与请求一同发送的查询字符串键/值对集合。
可选的 callback 参数是 load() 方法完成后所执行的函数名称。
jQuery - AJAX get() 和 post() 方法
jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。
两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST。
  • GET - 从指定的资源请求数据
  • POST - 向指定的资源提交要处理的数据
GET 基本上用于从服务器获得(取回)数据。注释:GET 方法可能返回缓存数据。
POST 也可用于从服务器获取数据。不过,POST 方法不会缓存数据,并且常用于连同请求一起发送数据。
  • jQuery $.get() 方法[7] 
$.get() 方法通过 HTTP GET 请求从服务器上请求数据。
语法:
1
$.get(URL,callback);
必需的 URL 参数规定您希望请求的 URL。
可选的 callback 参数是请求成功后所执行的函数名。
  • jQuery $.post() 方法[7] 
$.post() 方法通过 HTTP POST 请求从服务器上请求数据。
语法:
1
2
3
$.post(
URL,data,callback
);
必需的 URL 参数规定您希望请求的 URL。
可选的 data 参数规定连同请求发送的数据。
可选的 callback 参数是请求成功后所执行的函数名。
  • 使用jquery实现ajax方式如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$.ajax({
async :  false ,
type:  "POST" ,
url:  "example.php" ,
data:  "name=John&location=Boston"
}).done( function (msg){
alert( "Data Saved: "  + msg);
}).fail( function (xmlHttpRequest,statusText,errorThrown) {
alert(
"Your form submission failed.\n\n"
"XML Http Request: "  + JSON.stringify(xmlHttpRequest)
",\nStatus Text: "  + statusText
",\nError Thrown: "  + errorThrown);
});
这个例子发送name=John和location=Boston两个数据给服务端的example.php,请求成功后会提示用户。
更多详细信息请参见jQuery API的 Ajax部分。
async默认的设置值为true,这种情况为异步方式,就是说当 ajax发送请求后,在等待server端返回的这个过程中,前台会继续执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程和ajax块后面的脚本(另一个线程)

插件机制

编辑
jQuery的官方插件是jQuery UI。开发者可以任意扩展jQuery的函数库或者按照自己的需求开发UI组件。网上已经有数以万计的jQuery插件,覆盖各种各样的需求。例如Ajax辅助、数据表格、动态列表、XML工具、拖曳、cookie处理、弹出层等等。jQuery 的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择,例如ComponentOne Studio for ASP NET Wijmo.
随着jQuery插件在网站建设过程中的使用率不断的增加,所以有必要跟进时代步伐开发出一些新的插件/代码片段,以此来巩固并提高前端用户体验,将用户体验提升到一个新的高度。其中包括Flat jQuery Price Slider、Gmaps jQuery Map Plugin 、FormChimp——MailChimp Ajax plugin for jQuery 等。 [8]  

控件

编辑
jQuery Gantt控件是一个基于原生HTML5/jQuery,功能丰富的控件,该控件真正实现了跨平台,在许多设备和浏览器中无缝的运行。
  1. 使用项目甘特图中内置的调度,依赖等功能实现任务分层列表的可视化。
  2. 使用资源甘特图实现一个资源利用视图。
  3. 使用基于 API的jQuery或者基于API的MVC可帮您轻松地安装甘特图并加快应用速度。
  4. 可与诸如KnockOut(KO),jQuery.tmpl等流行的jQuery模式一同使用。

WEB技术

HTML
XHTML HTML 5 CSS TCP/IP
XML
XML XSL XSLT XSL-FO XPath XPointer XLink DTD XML Schema DOM XForms SOAP WSDL RDF RSS WAP Web Services
Web脚本
JavaScript HTML DOM DHTML VBScript AJAX jQuery JSON E4X WMLScript
Serv脚本
SQL ASP ADO PHP
.NET
Microsoft.NET .NET Mobile
多媒体
SMIL SVG
参考资料
  • 1.  jQuery 1.11 and 2.1 Released .jQuery[引用日期2015-03-29]
  • 2.  jQuery 1.11.1 and 2.1.1 Released .jQuery[引用日期2015-03-29]
  • 3.  Microsoft CDN  .Microsoft [引用日期2014-02-17]
  • 4.  新浪SAE文档中心 .新浪 [引用日期2014-02-17]
  • 5.  百度CDN公共库 .百度 [引用日期2014-02-17]
  • 6.  jquery经典实例 .jquery实例[引用日期2014-02-17]
  • 7.  jQuery 教程 .W3Cschool 菜鸟教程[引用日期2014-01-21]
  • 8.  25个可遇不可求的jQuery插件 .TechTarget SOA[引用日期2015-06-24]
词条标签:
计算机学科技产品科学

你可能感兴趣的:(JavaScript)