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!');
});
详细了解 jQuery(…)
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)');
// 选出的是 Banana, Grape, Strawberry
详细了解: prevUntil, nextUntil, parentsUntil
3. 绑定多个事件处理器
不再需要把各个事件绑定方法“链”在一起,现在你可以把它们捆成一堆,如下:
复制内容到剪贴板
代码:
jQuery('#foo).bind({
click: function() {
// do something
},
mouseover: function() {
// do something
},
mouseout: function() {
// do something
}
})
这一用法也适用于 " .one() ".
详细了解 .bind(…)
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'
}
});
编辑注:我们的作者 James Padolsey 谦虚了,这一功能点是他想出来的哦!
详细了解有关 per-property-easing 的内容
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 方法或插件,代理函数也能派上用场。
了解更多 jQuery.proxy
7. 动画队列延迟
现在,可以给动画队列加一个延迟了。虽然这个功能可以在任何队列里实现,但最常用的可能还是延迟“fx 队列”("fx" queue,jQuery默认的动画队列)。它能让你在两个动画行为之间暂停一下,而不用牵扯到回调函数和 setTimeout 之类的东西。 .delay() 的第一个参数即你需要设定的延迟毫秒数:
复制内容到剪贴板
代码:
jQuery('#foo')
.slideDown() // Slide down
.delay(200) // Do nothing for 200 ms
.fadeIn(); // Fade in
如果你想延迟一个除 fx 以外的队列,把队列名作为第二个参数传给 .delay() 就可以了 。
详细了解 .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> 中
消息了解: .has(…) , jQuery.contains(…)
9. 给元素剥皮!
很早以前,jQuery 就可以用 .wrap() 给元素裹一层皮。现在, jQuery 1.4 添加了 .unwrap() 方法,用以剥皮。看下面的DOM结构:
复制内容到剪贴板
代码:
<div>
<p>Foo</p>
</div>
来把 p 元素外面的一层皮(div)剥掉:
复制内容到剪贴板
代码:
jQuery('p').unwrap();
DOM 变成了:
复制内容到剪贴板
代码:
<p>Foo</p>
总而言之,这个方法可以把任意元素的父元素移除。.
详细了解 .unwrap(…)
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!"
详细了解 .detach(…)
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 。
详细了解 .index(…)
12. DOM 操纵可接收回调函数
现在,大部分的DOM操纵方法都支持了将 函数 作为单一参数传入( .css() 和 .attr() 传入为第二个参数)。这个函数会为选择集中的每一个元素都跑一遍,从而为相应操纵方法提供更“有个性”的值。
-
有了回调函数,你就能在选择集中利用 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
了解更多: isPlainObject(…) , isEmptyObject(…)
14. Closest(…) 的功能增强
jQuery的 .closest() 方法现在可以接受一组选择符作为参数。当你需要遍历某一元素的所有上级,找到一个以上符合特定特征的最近元素时,此功能就能派上用场。
而且,现在它还能接受上下文环境作为第二个参数,也就是说你可以控制DOM遍历的深度或者说远度。虽然说大家可能很少会用到这两个新特性,但一旦用上效果是惊人的!
了解更多 .closest(…)
15. 新事件! focusIn 与 focusOut
如前所述,现在部署 focus 和 blur 事件时,你需要使用 focusin 和 focusout 这两个新事件。这两个事件帮助你在特定元素或者该元素的子元素 获取/失去 焦点时采取行动。
复制内容到剪贴板
代码:
jQuery('form')
.focusin(function(){
jQuery(this).addClass('focused');
});
.focusout(function(){
jQuery(this).removeClass('focused');
});
值得说明的是,这两个事件不会传播开来(即所谓的“冒泡”),它们会被捕获住。也就是说,外部元素(父辈)会在作孽的“目标”元素(causal "target" element)之前被触发。
分享到:
相关推荐
- 对于移动开发者,能够在手机或平板上快速查找API和示例,提高了开发效率。 **jQuery 1.8.3_20121215.chm** 是Windows系统的帮助文件,通常包含HTML格式的离线文档。 - 用户可以在没有网络的情况下查看完整的...
7. **API 文档**:JQuery 1.4 API 帮助手册提供了详尽的函数参考和示例,是开发者学习和查阅的重要资源。它涵盖了所有可用的方法、属性和事件,有助于开发者理解和利用jQuery的强大功能。 8. **性能提升**:jQuery ...
jquery API 1.4手册 jquery API 1.4手册jquery API 1.4手册jquery API 1.4手册 jquery API 1.4手册 jquery API 1.4手册 jquery API 1.4手册 jquery API 1.4手册 jquery API 1.4手册 jquery API 1.4手册
在企业级开发中,jQuery 1.4常与Java和j2ee平台结合使用。前端的jQuery负责处理用户交互和数据展示,后端的Java或j2ee服务器则负责业务逻辑和数据处理。这种前后端分离的模式提高了开发效率,同时也使项目结构更为...
jQuery 1.4API 离线版帮助手册
综上所述,《jQuery 1.4 API中文手册》提供了全面的API参考,涵盖了jQuery的核心功能和高级特性,是学习和使用jQuery 1.4版本的必备参考资料。通过深入理解和熟练应用这些知识点,开发者可以编写出高效、简洁的...
总的来说,jQuery 1.4是一个关键的jQuery版本,它的优化和新特性为前端开发带来了极大的便利,成为那个时代许多网站和应用程序的基础。虽然现在有更新的jQuery版本,但理解jQuery 1.4对于了解jQuery的发展历程和核心...
jQuery是JavaScript库中的一款经典工具,...jQuery1.4 API中文手册详细阐述了这些概念和方法,对于学习和掌握jQuery1.4至关重要。通过深入理解和实践,开发者能够利用jQuery高效地编写出简洁、高性能的JavaScript代码。
jQuery API 1.4.4 中文版 参考手册CHM版第二版,jquery api 下载,jQuery 1.4.4 API 参考文档中文版.rar,jQuery最新版CHM下载,jQuery中文参考手册,jQuery中文版1.4.4参考手册,jQuery 1.4.4 速查表,jQuery中文参考手册,...
以上是jQuery 1.4 API的核心知识点,通过JQuery_1.4_API.CHM文档,开发者可以深入学习这些功能并应用到实际项目中,提升JavaScript开发的效率和代码质量。对于初学者来说,这个API文档是一个宝贵的资源,帮助理解...
本离线手册专注于jQuery的核心API,帮助开发者深入理解和运用这个库。 **一、选择器(Selectors)** jQuery的选择器是其强大之处之一,它极大地简化了DOM元素的选取。例如,`$("#id")`用于选取ID为"id"的元素,`$...
相信有不少朋友已经下载最新版本的jquery放在网站来使用了吧,jquery1.4版本怎么说都比以前的版本更强大,所以有一些新的调用函数大家不知道怎么使用的,要有一本API参考手册才好提高开发的效率,本人刚刚在博客园...
离线版本的**JQuery API**和**W3School**教程,对于没有网络或者需要离线学习的开发者来说非常有用。它们包含完整的函数和方法文档,以及示例代码,可以帮助开发者快速查询和理解相关知识,提高开发效率。
javascript API 中文离线手册(chm版) 包含小知识点,一些jquery的使用
这个手册涵盖了jQuery库1.4版本的所有核心功能和API,是学习和理解jQuery的宝贵资源。 jQuery是一个广泛使用的JavaScript库,它的目标是简化HTML文档遍历、事件处理、动画制作和Ajax交互。jQuery 1.4版本在当时是一...
为方便自己也为方便所有爱好jQuery的朋友,本人将CHM重新整理,并和jQuery中文API的整理者 Shawphy 同步更新本CHM手册,以便大家能及时了解其最新资讯!由于本人精力有限,难免出现差错,请谅解并告知 Email ! 本...
**jQuery 1.4 开发文档...总的来说,jQuery 1.4版本提供了强大的DOM操作、事件处理、动画制作和Ajax交互功能,而详细的API文档则是开发者得力的工具,可以帮助他们更好地利用这些功能来构建动态、交互性强的Web应用。
这里我们主要讨论的是 jQuery 1.6.4 和 jQuery 1.4 API 的中文版本,这两个版本虽然在功能上有所不同,但都为开发者提供了丰富的工具和方法,以提高开发效率。 **jQuery 1.6.4** jQuery 1.6.4 是一个稳定版本,发布...