注册
登录

您现在的位置是:首页 > 学无止境

jQuery 1.4 发布:你必须知道的15个新特征

木木彡82 2010-01-18 09:09:00 688人围观
jQuery 1.4 Released: The 15 New Features you Must Know
原文:http://net.tutsplus.com/tutorial ... ures-you-must-know/

作者: James Padolsey

1. Passi...

jQuery 1.4 Released: The 15 New Features you Must Know
原文:http://net.tutsplus.com/tutorial ... ures-you-must-know/

作者: James Padolsey

1. Passing Attributes to jQuery(…)
jQuery 1.4支持传送一个对象作为第2个参数给jquery自身。
在1.4,创建一个元素,可以这样做

在之前需要这样:

第一段代码中,id添加到元素的属性上,为foo;css和click属性调用相应的方法,再比如,创建一个超链接:

超链接是没有text属性的,jQuery1.4在这里就调用了".text()"的方法,"Go to Google!" 作为.text()的参数。
jQuery(…)

 

2. Everything "until"!
1.4添加了3个新的DOM遍历方法 "nextUntil", "prevUntil" 和 "parentsUntil":朝某个方向遍历直到符合传进这些方法的选择器。
比如一列水果

要取得"Apple"之后"Strawberry"之前的,可以这样:

prevUntil , nextUntil , parentsUntil

 

3. Binding Multiple Event Handlers
可以在一次调用中绑定一大堆事件 ,替换掉链式绑定

".one()"也可以多重绑定
.bind(…)

4. Per-Property Easing
可以对动画的每一个属性设置变换函数,而不再是一个函数对应单独一次动画。
jQuery包含2个变换函数:默认的为swing,还有一个是linear,其他的 可以单独下载
可以设置属性为数组,第1个为将改变到的属性值,第2个为使用的函数

See this code in action!
也可以定义可选的options对象属性中"specialEasing" 对象的键/值

(这个特性正是作者James Padolsey的主意)
Read more about per-property easing

5. New Live Events!
1.4支持"submit", "change", "focus" 和 "blur" 事件的委派,在使用".live()"方法的时候对大量元素或者新添加元素注册事件耗费资源更少。要注意的是,使用时要用"focusin" 和 "focusout"替换掉"focus" 和 "blur"

 

6. Controlling a Function's Context
jQuery 1.4 在jQuery的命名空间下提供了一个新的代理函数。这个函数有2个参数,作用域+方法名 或者 函数+函数的作用域,我们可以改变this指向到自己先前创建的对象,而不是默认的那个元素上。
例如

在调用的时候this指app

而下面代码调用时候就不起作用了。

这种原生的事件模型触发时候handler的上下文指向target元素,要改变的话:

点击链接的时候"Hi!"弹出
proxy函数包装了原函数,把this指向你定义的任何东西。可以用在多种方面,比如把回调函数传到其他jQuery方法或者插件
Read more about jQuery.proxy

7. Delay an Animation Queue
让你在动画之间停止而不需要使用 "setTimeout"

第一个参数是时间
第2个可选参数传入列名字用来改变默认的"fx" queue
Read more about .delay(…)

8. Check if an Element Has Something
同":has()"的过滤选择器作用一样".has()"用来查看一个或一组元素有没有某种东西,用在程序流程中动态使用

"contains"函数重写为第2个参数是否包含第1个参数

.has(…) jQuery.contains(…)

9. Unwrap Elements!
对应".wrap()"方法添加了一个".unwrap()"的新方法,用来去掉任一元素的父元素

去掉(unwrap)p可以这样:

变成

.unwrap(…)

10. Remove Elements Without Deleting Data
新方法".detach()"同 ".remove()"方法不同在于不会摧毁".data()"添加的数据和移除绑定的事件
这对于从DOM中取出再插入元素很有用

.detach(…)

11. index(…) Enhancements
jQuery 1.4 给出了2种使用 ".index()"的新方式,之前只是传入一个元素返回表示位置的数字,一种是不传入参数

返回所点击元素的位置(当前元素在它的兄弟siblings中的index)
另外也可以传入一个选择器selector,返回当前元素element在选择器返回的集合中的index。返回-1,则表示不符合
.index(…)

12. DOM Manipulation Methods Accept Callbacks
after
before
append
prepend
addClass
toggleClass
removeClass
wrap
wrapAll
wrapInner
val
text
replaceWith
css
attr
html
这些方法可以传入一个函数。回调函数遍历时候,this指向当前元素,元素在集合中的位置作为第1个参数,其返回值作为相应实际的值

在使用".html()" 或 ".attr('href)"等方法设置值的时候,回调函数第2个参数为当前值

在使用".css() 或 ".attr()"等方法改变值的时,方法第一个就是要改变的属性。

13. Determine the Type of Object
"isEmptyObject"根据是不是空对象(没有直接的或是继承的属性)返回一个布尔值
"isPlainObject"根据是不是"{}"或者"new Object()"创建的JavaScript对象 返回一个布尔值

 

14. Closest(…) Enhancements
".closest()"可以接受一组选择器过滤(遍历父代的时候只选择一定特征的)和第2个参数控制遍历深度
.closest(…)

15. New Events! focusIn and focusOut
上面提到的这两个新委派事件方法用来在当前元素或后代元素获得焦点的时候捕获。注意只有从上到下的捕获过程而没有冒泡过程,也就是说外层的父代的元素比引起事件的目标"target"元素先触发。

focusIn and focusOut events.

更多参考

"14 days of jQuery "
API documentation!

 

文章评论

  • 登录后评论

点击排行