文章出处:http://www.weboffer.cn/index.php/html/628.html
1. 传参给 jQuery(…)
之前,jQuery可以通过 attr
方法设置元素的属性,既可传属性的名和值,也可以是包含几组特定 属性名值对 的 对象。在 jQuery 1.4 中,你可以把一个参数对象作为第二个参数传给 jQuery 函数本身,同时创建HTML元素。
比方说你想要创建一个带有几个属性的锚记元素(<a></a>)。在1.4中,一切如此简单:
jQuery(‘<a/>’, {
id: ‘foo’,
href: ‘http://google.com’,
title: ‘Become a Googler’,
rel: ‘external’,
text: ‘Go to Google!’
});
你大概也能猜到,这个锚记元素没有的 text 属性会调用 jQuery 的私有方法 .text() ,把元素里的文字设置为“Go to Google!”
针对这一用法,下面是更有用的实例:
jQuery(‘<div/>’, {
id: ‘foo’,
css: {
fontWeight: 700,
color: ‘green’
},
click: function(){
alert(‘Foo has been clicked!’);
}
});
id 为一般属性,被直接加上了,而 css 和 click 则激发了相应的 jQuery 方法。在1.4以前,上面的代码需写成这个样子:
jQuery(‘<div/>’)
.attr(‘id’, ‘foo’)
.css({
fontWeight: 700,
color: ‘green’
})
.click(function(){
alert(‘Foo has been clicked!’);
});
2. 直到遇见你…
1.4的DOM遍历工具包里又增加了3个新方法: nextUntil, prevUntil 和 parentsUntil 。这些方法会按照特定的方向遍历DOM,直到遇到满足指定选择符的元素为止。举例来说,现在我们有一张水果名的清单:
<ul>
<li>Apple</li>
<li>Banana</li>
<li>Grape</li>
<li>Strawberry</li>
<li>Pear</li>
<li>Peach</li>
</ul>
我们想挑选出所有在 Apple 后,Pear 前的所有条目。代码十分简单:
jQuery(‘ul li:contains(Apple)’).nextUntil(‘:contains(Pear)’);
3. 绑定多个事件处理器
不再需要把各个事件绑定方法“链”在一起,现在你可以把它们捆成一堆,如下:
jQuery(‘#foo).bind({
click: function() {
// do something
},
mouseover: function() {
// do something
},
mouseout: function() {
// do something
}
})
这一用法也适用于 ” .one() “.
4. 依属性指定缓动效果
以前只能为一个动画指定一种缓动效果(easing,即动画过程中的速度变化规律。jQuery 原生支持两种缓动效果,swing(默认)和linear 。要使用其他效果,你需要自己另行下载
。),现在你可以为动画的各个属性参数指定不同的缓动效果:
jQuery(‘#foo’).animate({
left: 500,
top: [500, 'easeOutBounce']
}, 2000);
点此查看实际效果
你也可以在一个可选的动画选项对象中为 secialEasing 设置一系列名值对来完全上面的工作:
jQuery(‘#foo’).animate({
left: 500,
top: 500
}, {
duration: 2000,
specialEasing: {
top: ‘easeOutBounce’
}
});
5. 更新的 Live 事件
jQuery 1.4 添加了对指派 submit
, change
, focus
和 blur
事件的支持。在jQuery中,我们利用” .live() ” 方法指派事件。当你想要为多个元素注册事件处理器时,这会非常有用。而且就算满足选择符的元素是新出现的,这些事件也会继续有效(使用 .live() 比不断重复绑定要省力省心得多)。
不过,当心了!
注册 focus 和 blur 事件时你需要用 focusin
和 focusout
作为事件名。
jQuery(‘input’).live(‘focusin’, function(){
// do something with this
});
6. 控制函数上下文
jQuery 1.4 提供了一个全新的 proxy 函数,位于 jQuery 命名空间下。这一函数接受两个参数,一个是“作用域”(scope)或者一个方法名,另一个是某函数或者目标作用域(the intended scope)。
众所周知, JavaScript的 this 关键字是一个很难把握的东西。有时候你并不想它代表一个元素,而想让它代表你前面创建的某个对象。
例如,在这里我们创建了一个 app 对象,它拥有两个属性,一个是 clickHandler 方法,一个是负责参数配置的对象。
var app = {
config: {
clickMessage: ‘Hi!’
},
clickHandler: function() {
alert(this.config.clickMessage);
}
};
这个 clickHandler 方法,当像 app.clickHandler() 这样调用时, app 就是其上下文,也就是说 this 关键字指向的是 app 。如果只需简单地调用,这样的写法没什么问题:
app.clickHandler(); // “Hi!” is alerted
不过如果把它当作一个事件处理器:
jQuery(‘a’).bind(‘click’, app.clickHandler);
当我们点击这个锚记时,并没有达到预想的效果(没东西 alert 出来)。这是因为 jQuery
(以及大部分理智的事件模型),默认地,都会把处理器的上下文指定为目标元素本身。也就是说, this 所代表正是被点击的这个链接。而我们想的是,
this 应该继续代表 app 。在jQuery 1.4中,实现这一目的十分简单:
jQuery(‘a’).bind(
‘click’,
jQuery.proxy(app, ‘clickHandler’)
);
现在点击所有锚记都会弹出“Hi!”了。
代理函数把你的函数包裹一圈,同时把函数内的 this 设定为你想要东西。在其他上下文应用场景,如把回调函数传给其他 jQuery 方法或插件,代理函数也能派上用场。
7. 动画队列延迟
现在,可以给动画队列加一个延迟了。虽然这个功能可以在任何队列里实现,但最常用的可能还是延迟“fx 队列”(”fx”
queue,jQuery默认的动画队列)。它能让你在两个动画行为之间暂停一下,而不用牵扯到回调函数和 setTimeout 之类的东西。
.delay() 的第一个参数即你需要设定的延迟毫秒数:
jQuery(‘#foo’)
.slideDown() // Slide down
.delay(200) // Do nothing for 200 ms
.fadeIn(); // Fade in
如果你想延迟一个除 fx 以外的队列,把队列名作为第二个参数传给 .delay() 就可以了 。
8. 检测元素是否含有特定内容
jQuery 1.4 让检测一个元素(或集合)是否含有( .has() )某项东西更为容易。其背后的机理和选择过滤器 :has() 是一样的。这个方法会从当前集合中选出满足任意指定条件之一的元素。 jQuery(‘div’).has(‘ul’);
这条语句在所有DIV元素中挑出那些包含UL元素的。这种情况可能用选择过滤器 :has() 就好了,但当你要更程式化地过滤选择集时 .has() 方法就十分有用了。
jQuery 1.4 还在 jQuery 命名空间下新增了一个 contains 函数。这是一个比较底层的函数,接受两个 DOM 节点为参数。返回一个布尔值,指示第二个元素是否包含在第一个元素中。例如:
jQuery.contains(document.documentElement, document.body);
// 返回true – <body> 确实包含在 <html> 中
9. 给元素剥皮!
很早以前,jQuery 就可以用 .wrap() 给元素裹一层皮。现在, jQuery 1.4 添加了 .unwrap() 方法,用以剥皮。看下面的DOM结构:
<pre name=”code]<div>
<p>Foo</p>
</div>[/code]
来把 p 元素外面的一层皮(div)剥掉:
jQuery('p').unwrap();
DOM 变成了:
<p>Foo</p>
总而言之,这个方法可以把任意元素的父元素移除。
10. 移除元素,而不删除数据
以前有一个 .remove() 方法,是把元素剥离后抛弃。全新的 .detach()
方法可以让你把一个元素从DOM中剥离,而不丢失数据。囊括该元素的 jQuery 对象会在操作完成后还保留这个元素。数据可以通过
.data() 或者 jQuery 事件系统中的任意事件处理器传入 jQuery 对象。
当你需要把某个元素从DOM中移除,然后在将来某个场景中重新引入时,这个函数会很有用。元素的事件句柄和其他所有数据都会被保留。
var foo = jQuery('#foo');
// 绑定一个重要的事件处理器
foo.click(function(){
alert('Foo!');
});
foo.detach(); // 从DOM中移除
// … do stuff
foo.appendTo('body'); // 重新加入到DOM
foo.click(); // 弹出alert信息: "Foo!"
11. index(…) 的功能增强
jQuery 1.4 为您使用 .index() 提供了两种新方法。以前,你必须把元素作为参数传给它,然后获得一个返回的数值,代表在当前集合中这个元素的索引。现在,如果不传参数过去,返回的值就代表某元素在其同辈中排行老几。比方说下面的DOM:
<ul>
<li>Apple</li>
<li>Banana</li>
<li>Grape</li>
<li>Strawberry</li>
<li>Pear</li>
<li>Peach</li>
</ul>
你想要晓得点击一个条目后它是列表中的第几个,实现的代码十分简单:
jQuery('li').click(function(){
alert( jQuery(this).index() );
});
jQuery 1.4 也允许你将选择符作为 .index() 的第一个参数。这样做会返回当前元素在你指定的选择符所匹配出的元素集合中的索引值。
还得提醒一点,这一方法返回的是数值,如果文档中无法找到指定条件的元素,会返回数值 -1 。
12. DOM 操纵可接收回调函数
现在,大部分的DOM操纵方法都支持了将 函数 作为单一参数传入( .css() 和 .attr() 传入为第二个参数)。这个函数会为选择集中的每一个元素都跑一遍,从而为相应操纵方法提供更“有个性”的值。
下列方法支持这一功能:
after
before
append
prepend
addClass
toggleClass
removeClass
wrap
wrapAll
wrapInner
val
text
replaceWith
css
attr
html
有了回调函数,你就能在选择集中利用 this 关键字来访问当前元素,用回调函数的第一个参数来访问其索引值。
jQuery('li').html(function(i){
return 'Index of this list item: ' + i;
});
还有还有,上面的某些方法还提供第二个参数供你利用。如果你调用的是一个设定型方法(如 .html() 和 .attr('href...) ),你还能取得当前值。例如:
jQuery('a').attr('href', function(i, currentHref){
return currentHref + '?foo=bar';
});
如您所见,对于 .css() 和 .attr() 方法来说,之所以要把函数作为第二个参数传递,是因为第一个参数要用来指定我们需要修改的是哪一个属性:
jQuery('li').css('color', function(i, currentCssColor){
return i % 2 ? 'red' : 'blue';
});
13. 判定对象类型
jQuery 1.4 新增了两个全新的辅助函数(都直接位于 jQuery 命名空间下),可以帮助你判别你正在操纵的是何种对象。
第一个函数是 isEmptyObject , ,它返回一个布尔值,判定对象是否为空()。第二个是 isPlainObject
,它返回的布尔值代表传递过去的参数是否为JavaScript的简单对象(plain object),也就是用 {} 或 new
Object() 创建的对象。 复制内容到剪贴板
jQuery.isEmptyObject({}); // true
jQuery.isEmptyObject({foo:1}); // false
jQuery.isPlainObject({}); // true
jQuery.isPlainObject(window); // false
jQuery.isPlainObject(jQuery()); // false
14. Closest(…) 的功能增强
jQuery的 .closest() 方法现在可以接受一组选择符作为参数。当你需要遍历某一元素的所有上级,找到一个以上符合特定特征的最近元素时,此功能就能派上用场。
而且,现在它还能接受上下文环境作为第二个参数,也就是说你可以控制DOM遍历的深度或者说远度。虽然说大家可能很少会用到这两个新特性,但一旦用上效果是惊人的!
15. 新事件! focusIn 与 focusOut
如前所述,现在部署 focus 和 blur 事件时,你需要使用 focusin 和 focusout 这两个新事件。这两个事件帮助你在特定元素或者该元素的子元素 获取/失去 焦点时采取行动。
jQuery('form')
.focusin(function(){
jQuery(this).addClass('focused');
});
.focusout(function(){
jQuery(this).removeClass('focused');
});
值得说明的是,这两个事件不会传播开来(即所谓的“冒泡”),它们会被捕获住。也就是说,外部元素(父辈)会在作孽的“目标”元素(causal "target" element)之前被触发。
动画特效JS库:http://gsgd.co.uk/sandbox/jquery/easing/
分享到:
相关推荐
**jQuery 1.4:JavaScript库的里程碑版本** jQuery是一个广泛使用的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画制作以及Ajax交互。jQuery 1.4是该库的一个重要版本,发布于2010年,带来了许多性能...
**jQuery 1.4:JavaScript框架的里程碑** jQuery,由John Resig于2006年创建,是一款高效、简洁且功能丰富的JavaScript库,旨在简化HTML文档遍历、事件处理、动画以及Ajax交互。在jQuery 1.4版本发布时,它已经成为...
《jQuery 1.4:高效前端开发的利器》 jQuery,作为JavaScript库的代表,以其简洁易用的API和强大的功能赢得了开发者们的广泛喜爱。在本文中,我们将深入探讨jQuery 1.4版本,理解其核心特性,以及如何利用它进行...
jQuery 1.4 版本是这个库的一个里程碑,它在2010年发布,提供了许多性能优化和新特性。以下是关于 jQuery 1.4.js 和其API的详细知识: 1. **核心选择器**:jQuery 提供了 CSS 选择器,如 `#id`、`.class` 和 `...
在众多版本中,jQuery 1.4版是一个重要的里程碑,它不仅优化了性能,还引入了许多新的特性和改进,使得Web开发变得更加高效和便捷。下面我们将详细探讨jQuery 1.4版的核心特点、改进之处以及实际应用场景。 1. **...
综上所述,《jQuery 1.4 API中文手册》提供了全面的API参考,涵盖了jQuery的核心功能和高级特性,是学习和使用jQuery 1.4版本的必备参考资料。通过深入理解和熟练应用这些知识点,开发者可以编写出高效、简洁的...
这个“jQuery API 1.4中文版”文档是为开发者提供关于jQuery 1.4版本的详细说明和参考,帮助他们更好地理解和运用jQuery的功能。 ### 一、jQuery基础 1. **选择器**: jQuery的核心功能之一是强大的选择器,它们...
**jQuery 1.4:一个高效、易用的JavaScript库** jQuery是一个强大的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画设计和Ajax交互。jQuery 1.4是该库的一个重要版本,发布于2010年,带来了许多性能优化...
《jQuery 1.4 手册【中文版】》是一份详尽的指南,旨在帮助开发者深入了解和熟练运用jQuery库的1.4版本。jQuery是一个轻量级的JavaScript库,以其简洁的API和强大的功能而广受欢迎。1.4版本在前一版本的基础上进行了...
**jQuery 1.4 最新版本及文档** jQuery 是一个高效、简洁且强大的JavaScript库,它使得HTML文档遍历、事件处理、动画以及Ajax交互变得更为简单。在本压缩包中,我们包含了jQuery 1.4版本的相关资源,这是一个非常...
本指南将深入探讨《jQuery API 1.4(中文)》及jQuery 1.4.2版本中的关键知识点,帮助开发者更好地理解和运用这一版本的特性。 一、jQuery库的基本概念与应用 jQuery库是John Resig在2006年创建的一个JavaScript库...
在jQuery 1.4版本中,它进一步提升了性能,并且提供了更多的功能和改进,使得Web开发变得更加简单快捷。本文将深入探讨jQuery 1.4的关键知识点,包括选择器、DOM操作、事件处理、效果动画、Ajax交互以及插件使用等。...
总之,jQuery 1.4的readme文档是学习和理解这个重要版本的关键资源,它详尽地概述了新功能和改进,帮助开发者充分利用jQuery的强大功能来提升网页开发的效率和质量。无论是初学者还是经验丰富的开发者,都可以从中...
**jQuery 1.4:一个里程碑式的JavaScript框架** jQuery,作为一个高效、易用的JavaScript库,自2006年发布以来,极大地简化了前端开发人员处理网页DOM操作、事件处理、动画效果以及Ajax交互的方式。jQuery 1.4版本...
在标签中再次强调了"jquery min 最新 1.4 js 压缩",这不仅突出了文件的主要特性,还提醒开发者这个版本的jQuery具有最新的功能,同时保持了轻量化。 在压缩包子文件的文件名称列表中,只有一个文件名:"jquery-1.4...
jQuery 1.4 版本是一个重要的更新,它引入了多个新特性,旨在提升性能和增强功能。以下是一些你应该了解的关键变化: 1. **属性传递的改进**: 在jQuery 1.4中,创建元素时可以通过一个属性对象传递多个属性。例如...
《jQuery API 1.4 参考手册》是前端开发者不可或缺的工具书,它全面、详细地介绍了jQuery 1.4版本的API和用法。jQuery是一个轻量级的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画设计和Ajax...
在我们关注的"jquery-1.4.js"版本中,jQuery进一步提升了性能,优化了API,并引入了一些重要的新特性。下面我们将深入探讨jQuery 1.4的主要知识点。 1. **选择器增强**: jQuery 1.4中,选择器功能得到了极大的...
《jQuery的1.4参考指南》是一份详细阐述jQuery 1.4版本特性和用法的资源包。jQuery,作为一款强大的JavaScript库,极大地简化了DOM操作、事件处理、动画制作以及Ajax交互等任务,而1.4版本是其发展历程中的一个重要...
- **文档资源**: 提供的 `JQuery_1.4_API.CHM` 文件是一个帮助文档,包含了对 jQuery 1.4 版本中所有函数、方法和属性的详细解释。用户可以通过查阅此文档了解如何使用各个功能,如 `$.ajax()` 进行异步数据请求,`...