下载
jQuery 1.3.2
https://code.jqueryjs.cn/jquery-1.3.2.min.js 压缩版 (使用 Gzipping 压缩后为 19kb)
https://code.jqueryjs.cn/jquery-1.3.2.js 完整版 (120kb)
更改
文档顺序返回的元素
这是对 jQuery 选择器引擎的更改,它会重新排序返回的结果,使其按照文档顺序排列,而不是按照选择器传入的顺序排列。此更改是为了符合 选择器 API 规范(jQuery 内部在支持它的浏览器中使用)。
一个示例结果
// jQuery 1.3.1 (and older)
$("h1, h2, h3")
=> [ h1, h1, h2, h2, h3, h3 ]
// jQuery 1.3.2
$("h1, h2, h3")
=> [ h1, h2, h3, h3, h1, h2 ]
我想感谢 Diego Perini 推动我们实现这一功能。
.live() 现在可以阻止冒泡
现在可以在回调函数中调用 event.stopPropagation() 或 return false,并使其阻止 live 事件的冒泡。这意味着您现在可以在彼此内部绑定 live 事件,并让内部处理程序阻止外部处理程序触发。
例如
<ul>
<li><b>Google</b></li>
<li><b>Yahoo</b></li>
</ul>
<script>
$("li").live("click", function(){
$(this).addClass("active");
});
$("li b").live("click", function(){
$(this).addClass("active");
return false;
});
</script>
我想感谢 Iraê 提出的针对此问题的解决方案。
对于那些想知道 .live() 的当前缺失功能(例如 submit 和 change 事件)的人,您可以预计所有这些功能都将包含在 jQuery 1.3.3 中,预计将于下个月发布。
:visible/:hidden 大幅改进
我们更改了 :visible 和 :hidden 选择器的逻辑(这些选择器在 jQuery 中被广泛用于确定元素的可见性)。
逻辑的变化如下
* 在 jQuery 1.3.1(及更早版本)中,如果元素的 CSS “display” 不是 “none”,其 CSS “visibility” 不是 “hidden”,并且其类型(如果它是 input)不是 “hidden”,则该元素是可见的。
* 在 jQuery 1.3.2 中,如果元素的浏览器报告的 offsetWidth 或 offsetHeight 大于 0,则该元素是可见的。
此更改意味着什么?这意味着如果您的元素的 CSS display 是 “none”,或者其任何父/祖先元素的 display 是 “none”,或者如果元素的宽度为 0 且元素的高度为 0,则该元素将被报告为隐藏。
进行此更改的好处是什么?结果是双重的
* 性能大大提高。(见下文)
* 如果元素位于“隐藏”元素内部,则会报告为“隐藏”(以前需要使用插件才能实现)。

我想感谢 Matheus Almeida 提出的改进这些选择器性能的一些更改。
.height()/.width() 大幅改进
与宽度和高度相关的选择器都经过了全面改进,从而在所有浏览器中大大提高了其速度。

我想感谢 Mike Helgeson 在这方面的贡献,这在很大程度上负责我们在这方面看到的巨大收益。
IE 中的选择器加速
随着来自更大的 JavaScript 社区的贡献,新的 Sizzle 选择器引擎的优势开始显现。已经着陆了一些改进引擎性能的补充,尤其是在 Internet Explorer 中。

我想感谢 Fabio Buffoni 在这方面的贡献,这在很大程度上负责这些速度提升。
.appendTo()/等现在返回插入的元素
这是一个(小的)API 更改,解决了 jQuery API 中的一个错误。方法 appendTo、prependTo、insertBefore、insertAfter 和 replaceAll 现在都返回插入的元素集,而不是原始元素集。
要理解此更改,我们需要查看一个简单的示例。
给定以下标记,在 jQuery 1.3.1(及更早版本)中,将发生以下情况
<div></div>
<div></div>
<script>
$("<p/>")
.appendTo("div")
.addClass("test");
</script>
1.3.1(及更早版本)的结果
<div><p class="test"></p></div> <div><p></p></div>
这是因为 .appendTo 等只会返回传递给它的元素,而不是实际插入的元素(由于只传递了一个段落——第一个要插入的段落——只有第一个段落被添加了类)。
因此,如果您在 jQuery 1.3.2 中运行相同的代码,您将得到
<div><p class=”test”></p></div>
<div><p class=”test”></p></div>
这是预期的结果。唯一的注意事项是 appendTo、prependTo、insertBefore、insertAfter 和 replaceAll 现在都会推送到 jQuery 堆栈(这意味着它们会受到 .end() 的影响)。
我们对上述方法的现有用法进行了调查,没有发现任何此更改会影响现有代码的情况,因此我们认为可以放心地继续进行(特别是考虑到这是预期的行为)。
测试
我们对我们的测试套件和 jQuery 项目中的测试方法做了一些公告。
* 我们现在完全支持,并且测试套件在 Internet Explorer 8rc1 和 Chrome 2 (Nightly) 中完全通过(除了我们正常的浏览器选择之外)。
* 测试套件已经破坏了 1500 个测试(确切地说,是 1504 个)。

这意味着我们现在主动测试并使测试套件在 11 个浏览器中通过:Chrome 1、Chrome Nightly、IE 6、IE 7、IE 8rc1、Opera 9.6、Safari 3.2、WebKit Nightly、Firefox 2、Firefox 3、Firefox Nightly。
(我们正在等待 Opera 10 的下一个 beta 版本,然后再完全支持它,当前 beta 版本存在一些关键问题。)
为了衡量 jQuery 不同部分的性能,我们使用了 SlickSpeed 测试套件的修改版本来运行我们的测试(改编为处理非选择器测试)。测试运行的原始结果如下(所有时间以毫秒为单位)。
选择器测试
我们使用了 Yahoo 主页的副本(一个具有代表性的复杂网页),并使用人们实际使用的选择器。针对人们当前使用的选择器将有助于提高现有和未来应用程序的性能。
Frameworks jQuery 1.2.6 jQuery 1.3 jQuery 1.3.2 IE 6 1059 799 626
:hidden/:visible 测试
我们测试了在测试页面中的多个元素上的 :hidden 和 :visible 选择器。
Frameworks jQuery 1.3 jQuery 1.3.2 Firefox 3 1512 190 Firefox 3.1 1202 161 Safari 3.2 592 80 Safari Nightly 334 43 Opera 9.6 1307 497 IE 6 1948 738 IE 7 1295 830 Chrome 490 30
width/height 测试
我们测试了在测试页面上 width、height、innerWidth、innerHeight、outerWidth 和 outerHeight 方法。
Frameworks jQuery 1.3 jQuery 1.3.2 Firefox 3 310 106 Firefox 3.1 281 84 Safari 3.2 146 37 Safari Nightly 166 32 Opera 9.6 345 116 IE 6 313 124 IE 7 283 123 Chrome 113 27

