jQuery 1.0.3

发布时间: 作者:

另一个错误修复版本已准备好供大家使用!强烈建议您立即升级。与往常一样,如果您发现任何错误,请 将其添加到错误跟踪器

与上一个版本一样,jQuery 1.0.3 仅包含错误修复——所有 API 添加/更改/删除将留待下一个完整版本:jQuery 1.1。

再次感谢 Jörn Zaefferer 的辛勤工作,他真正地掌握了错误,修复了其中的绝大多数。这个版本很大程度上要归功于他。

立即下载

此版本包含一个新软件包:与该版本相关的所有内容的完整 zip 文件。其中包括三个版本的 jQuery(常规版、精简版和压缩版)、测试套件以及所有文档。现在,您无需自己构建它,即可拥有自己的副本。

已关闭的工单

在此版本中已关闭的错误或增强功能的完整集合

注意:尽管下面显示了大约 60 个错误,但其中许多是垃圾邮件发送者造成的,因此我不确定哪些是此版本修复的,哪些只是被重新关闭的僵尸错误。我相当肯定,虽然此版本修复了许多错误,但数量并不一定是 60 个。

  1. hover 跨浏览器问题
  2. hoverClass
  3. slideUp/Down 在 Opera 9.01 中存在错误
  4. jQuery 的 toggle(); 与 moo.fx 的 toggle(); 混合使用
  5. 动画中的 FX 闪烁错误
  6. .css() 返回不正确的值
  7. 规范化事件对象
  8. 不透明度应为 1.0
  9. 将 thead 附加到表格
  10. 将‘e’ 传递给 JQuery.css() 的问题
  11. [修补程序] IE 不透明度问题已解决
  12. 在回调内部使用时,show 中的错误
  13. [jQuery] hover 函数不会调用 mouseout 回调
  14. children() 可能不返回任何内容
  15. [修补程序] Firefox 中 $().hover 错误
  16. 上下文正在被修改
  17. .text() 包含注释
  18. 动画排队已损坏?
  19. IE 在半透明抗锯齿文本上的怪异行为,一个小修复
  20. $([[‘a’, ‘b’]]).length
  21. $().trigger 自修订版 127 以来已损坏
  22. Firefox 中生成的 JS“警告”
  23. Mozilla/Firefox 浏览器内存泄漏(使用 addEventListener)
  24. Safari 在测试套件中崩溃
  25. remove() 和 remove(expr) 不起作用
  26. [修补程序] IE 中没有边框时,innerWidth 和 innerHeight 失败
  27. $.load 需要回调
  28. o.getAttribute 不是函数(第 634 行)
  29. 不可用的响应标头会破坏 Firefox 1.0
  30. show 和 hide 的问题
  31. 嵌套在 display:none 中会导致 width()/height()=0
  32. this.set 不是函数
  33. $.ajax() 的 ifModified 参数
  34. ready 在 https 上使用 msie 时不起作用——修复
  35. $.get() 的参数错误地附加到查询字符串
  36. ajax 摘要/待办事项列表
  37. $(‘node1/node2’) 当 node1 为空时会引发错误
  38. IE 的 float 属性
  39. IE 中不透明度不起作用
  40. $.postJSON
  41. cloneNode() 问题
  42. “name.replace 不是函数”在 1.0.2 中
  43. 无法隐式放弃搜索上下文(没有 .end())
  44. 隐藏/显示后,html 的 load() 无法正确显示
  45. 将私有和公共 $.extend 分开
  46. $.load 应自动进行 jQuery 化
  47. ajaxStart 和 ajaxStop 存在问题
  48. .add( jQuery )
  49. 设置 iframe src 属性时的双重赋值
  50. 接口自动完成器无法正确解析 XML
  51. jQuery.ajax 中的一些变量在 1.0.2 中未正确初始化
  52. $.ajax: 像 load() 一样为“html”数据类型评估 JS
  53. $(‘something’).load(‘test.html’).show(“slow”) 不起作用
  54. 修改 jQuery “val” 的 API 文档
  55. jQuery 1.0.2 似乎破坏了接口元素自动完成器插件
  56. IE6 中 CSS 中的连字符
  57. 断言 animate 不更改哈希参数
  58. .animate() 溢出未重置

斑马线表格对决

发布时间: 作者:

作为先前 事件选择器对决 的后续内容,我们将进行新的斑马线表格对决

挑战

使页面上的所有表格都具有条纹(“斑马线”)背景(每隔一行颜色不同)。

规则

  • 奇偶行样式应通过为“奇数”编号的表格行添加一个类来完成。
  • 这必须能够在多个表格上工作。(这并不像找到所有行然后遍历每个奇数行那么简单,否则在下一个表格中,偶数行可能会被高亮显示)。
  • 代码应尽可能优雅地完成,尽可能使用库的功能。速度不是问题。

预期结果
zebra-fig1.gif

普通 DOM 脚本:(演示)

var tables = document.getElementsByTagName("table");
for ( var t = 0; t < tables.length; t++ ) {
  var rows = tables[t].getElementsByTagName("tr");
  for ( var i = 1; i < rows.length; i += 2 )
    if ( !/(^|\s)odd(\s|$)/.test( rows[i].className ) )
      rows[i].className += " odd";
}

注意:这包括一个检查,以确保表格行上不存在“奇数”类。所有现代库都会处理这个问题。

Yahoo UI:(演示)

var tables = document.getElementsByTagName("table");
for ( var t = 0; t < tables.length; t++ ) {
  var rows = tables[t].getElementsByTagName("tr");
  for ( var i = 1; i < rows.length; i += 2 )
    YAHOO.util.Dom.addClass( rows[i], "odd" );
}

注意:尽管他们的开发者网站 不同意

Dojo:(演示)

var each = dojo.lang.forEach;

each(document.getElementsByTagName("table"), function(table){
  each(table.getElementsByTagName("tr"), function(row,i){
    if ( i % 2 == 1 )
      dojo.html.addClass( row, "odd" );
  });
});

注意:将一个通用函数分配给一个变量,以使代码更短。

Prototype (1.4.0):(演示)

$A(document.getElementsByTagName("table")).each(function(table){
  $A(table.getElementsByTagName("tr")).each(function(row,i){
    if ( i % 2 == 1 )
      Element.addClassName( row, "odd" );
  });
});

Mochikit:(演示)

var byTag = getElementsByTagAndClassName;

forEach( byTag("table"), function(table) {
  var rows = byTag( "tr", null, table );
  for ( var i = 1; i < rows.length; i += 2 )
    addElementClass( rows[i], "odd" );
});

注意:将一个通用函数分配给一个变量,以使代码更短。

Prototype (1.5.0):(演示)

$$("table").each(function(table){
  Selector.findChildElements(table, ["tr"])
    .findAll(function(row,i){ return i % 2 == 1; })
    .invoke("addClassName", "odd");
});

mootools:(演示)

$$("table").each(function(table){
  $ES("tr", table).each(function(row,i){
    if ( i % 2 == 1 )
      row.addClass( "odd" );
  });
});

jQuery:(演示)

$("tr:nth-child(odd)").addClass("odd");

如果您觉得自己的解决方案比这里发布的更优雅,请在下面发布它们,以便更新列表。


新提交

这些是由其他读者提交的新条目。

AJS:(演示)

AJS.map(AJS.$bytc("table"), function(table) {
 AJS.map(AJS.$bytc("tr", null, table), function(row, i) {
   if ( i % 2 == 1 && !/(^|\s)odd(\s|$)/.test( row.className ) )
     AJS.setClass( row, "odd" );
 });

Prototype 1.5.1: (demo)

$$('tr:nth-child(odd)').invoke('addClassName', 'odd');

1.0.2 中的次要 API 更改

发布时间: 作者:

我忘记在 1.0.2 版本说明 中提到,前几天有一个次要的 API 更改。这是一个错误,因为我们应该等到下一个主要版本(jQuery 1.1)再进行 API 更改。

正如 Steven Wittens 所总结的那样,以下是更改背后的前提

在 jQuery 1.0.2 中,‘success’ 回调的第一个参数已更改为返回实际数据,而不是 XMLHttpRequest 对象。使用 ‘dataType’ 参数向 $.ajax() 传递参数以控制数据的返回方式。请注意,jQuery 现在可以为您解析 XML、JSON 和 JavaScript。

jQuery 1.0.1

$.ajax( {
  success: function (xmlhttp) {
    var data = $.httpData( xmlhttp );
    // 'data' holds the response data from the server
  }
);

jQuery 1.0.2

$.ajax( {
  success: function (data) {
    // 'data' holds the response data from the server
  }
);

感谢 Steven 的总结,以及对大家造成的不便表示歉意!

jQuery 1.0.2

发布时间: 作者:

jQuery 1.0.2 现在可以供大家使用!此版本是一个大型的错误修复版本,强烈建议您立即升级。与往常一样,如果您发现任何错误,请 将其添加到错误跟踪器

除了拥有更好的测试套件之外,此版本的另一个重要改进是针对常见任务(如 AJAX 操作)的跨浏览器兼容性。然而,在功能上,此版本没有添加任何主要功能(不过,预计在 1.1 版本中会有一些新代码)。

我想借此机会向大家介绍 Jörn Zaefferer。这个版本很大程度上要归功于他。他负责彻底改造测试套件(现在有 260 多个测试!),以及修复大部分当前错误和增强功能(超过 60 个!)。如果您要感谢某人,就应该是他。

立即下载

已关闭的工单

在此版本中已关闭的错误或增强功能的完整集合

  1. 跨浏览器尺寸
  2. IE 文本以完全不透明度渲染
  3. 如果已设置不透明度,则 FadeIn/FadeOut 会中断
  4. css(‘top’) 和 css(‘left’)
  5. IE 中的 fx.custom() 对不透明度不起作用
  6. IE 中不透明度不起作用
  7. jQuery IE6 中存在 base href 错误
  8. [修补程序] IE 不透明度问题已解决
  9. 命名空间元素和属性选择
  10. append(html) 函数失败,如果 html 是表格片段并且以空格开头
  11. IE 在半透明抗锯齿文本上的怪异行为,一个小修复
  12. 修复了表单中 getAttribute(‘action’) 的问题
  13. IE 在嵌套的 each 循环中对 $(this) 抛出错误
  14. IE5 脚本错误
  15. Mozilla/Firefox 浏览器内存泄漏(使用 addEventListener)
  16. filter 似乎没有正确运行
  17. $(‘node1/node2’) 当 node1 为空时会引发错误
  18. add 不会合并集合
  19. 扩展 not(jQuery) 才能操作集合
  20. 记录 $(”
  21. $.load 需要回调
  22. [修补程序] Firefox 中 $().hover 错误
  23. :not() 中的属性值
  24. children() 可能不返回任何内容
  25. IE 在嵌套的 each 循环中对 $(this) 抛出错误
  26. ajax 摘要/待办事项列表
  27. Safari 在测试套件中崩溃
  28. 错误的 safari 检测
  29. IE 和 Firefox 中 next() 的行为不同
  30. [修补程序] IE 事件系统中的内存泄漏
  31. AJAX 的不同编码
  32. IE 6 会删除空格,例如在使用 append 时
  33. hover() mouseout 错误
  34. $.postJSON
  35. $.get() 的参数错误地附加到查询字符串,
  36. 不带参数调用 load 会抛出异常
  37. IE 中返回脚本标签失败
  38. 不可用的响应标头会破坏 Firefox 1.0
  39. $.ajax() 的 ifModified 参数
  40. AJAX 中的超时作为参数
  41. 替换:input、:radio 等
  42. Ajax 重构
  43. jQuery 的 toggle();与 moo.fx 的 toggle();混淆
  44. 解析不透明度错误
  45. .constructor == Function 不够
  46. [PATCH] $().hasClass()
  47. 创建 IE 5.0 支持插件
  48. [修补程序] IE 中没有边框时,innerWidth 和 innerHeight 失败
  49. sibling() 返回兄弟节点和主体
  50. IE 无法使用 #element/* 表达式
  51. XHTML 表格
  52. 当 HTML 结构包含文本时,wrap 会中断
  53. 针对特殊属性情况下属性 *=、^= 和 $= 的修复。
  54. `]` 导致选择器中断
  55. 再次包含 jQuery 会覆盖已注册的文档就绪事件
  56. 表达式在 FireFox 1.5.0.6 中生成错误
  57. 支持 ancestor:: 轴
  58. prev() 未按预期工作
  59. nth-of-type
  60. Animate 函数发布
  61. attr(‘checked’, true) 不起作用

赞助 jQuery 开发

发布于 作者

今天有个好消息:Paul Bakaus 获得了其雇主 New Identity AG 的赞助,可以为 jQuery 项目做出贡献。他被分配了一部分时间来开发与 jQuery 相关的代码。所有这些都将直接回馈社区。

此外,New Identity AG 正在将主要 JavaScript 库切换到 jQuery。他们为许多 知名客户 开发项目。

Paul 将从一些“正在进行”的任务开始,例如:Prototype 支持插件跨浏览器实用程序方法,以及对 Interface 的功能改进和错误修复。

这清楚地表明了几件事:jQuery 的德国用户群正在迅速增长,开发速度将进一步加快,Interface 正成为完整“jQuery 包”的组成部分。预计很快就会看到一些重要的更新。

jQuery 访谈

发布于 作者

人们真的开始关注“jQuery”了!最近,我接受了一些关于 jQuery 的采访和演讲。以下是大多数的采访:一篇杂志文章、两篇在线文章和一个播客。尽情享受吧!

eWeek:jQuery 简化 JavaScript 和 AJAX 开发

随着越来越多的开发人员采用 AJAX 风格的开发实践来创建更具交互性的应用程序,他们正在寻找使这项工作更轻松的工具。

jQuery 就是这样一个工具,一些用户认为它通过简化 JavaScript 的使用,使 AJAX(异步 JavaScript 和 XML)开发更简洁。8 月初在华盛顿州雷德蒙德举行的微软 Lang.Net 研讨会上,一群专家表示,JavaScript notoriouly 难以使用。

Drupal 播客:jQuery 作者 John Resig

我们刚刚发布了 Drupal 播客的第 21 集!本期采访了 JQuery 作者 John Resig。我们讨论了 JQuery 是什么,它是如何工作的,以及它将如何融入 Drupal。

.net 杂志:jQuery 的 John Resig

jQuery 的大多数“重大”更新将与社区相关。我现在正在与一些国际 jQuery 用户合作,他们将把文档和网站的博客文章翻译成其他语言;最有可能首先翻译成德语、中文、西班牙语、意大利语和法语。

此外,由于 jQuery 拥有极其简单的插件架构,我也正在努力改善整个开发者社区和组织——想想 jQuery 的 Sourceforge。

InfoWorld:JavaScript 和 .Net 开发人员在独立项目中得到帮助

在 JavaScript 领域,开源 jQuery 项目为开发人员提供了一个 JavaScript 库来提高 Web 应用程序的质量。jQuery 使编写 JavaScript 和 AJAX(异步 JavaScript 和 XML)变得更加容易,jQuery 的首席开发人员兼作者 John Resig 表示。

“与其他 JavaScript 库的不同之处在于,它并没有试图强加于你,”Resig 说。开发人员应该能够编写比以前更短的代码,同时仍然获得相同或更好的功能,他说。

jQuery 1.0.1

发布于 作者

第一个 1.0 后版本现已准备就绪——而且(正如你可能预期的那样)这是一个错误修复版本。在过去几天里,我一直致力于修复一些最紧迫的 1.0 错误,我认为它已经准备就绪。因此,言归正传——以下是 jQuery 1.0.1

我强烈建议你升级到此版本,因为它将有助于使你的开发更加轻松(我预计接下来的几个小版本将很少有新功能)。以下是此版本中修复的内容

队列中还有几个不太紧迫的错误修复,并且很快就会出现一些不错的增强功能(尤其是针对 AJAX 函数,感谢 Will Jessup)。下一步将是完成 API 文档并把 proj.jquery.com 迁移到 jquery.com。

与往常一样,如果你发现任何错误,请随时将其发布到 错误跟踪器(这有助于我跟踪所有内容,并保持其井井有条)。

更新:我已经对本次更新应用了两个热修复,它们都修复了此错误更新中的重大问题。这就是我在凌晨的某个糟糕时间发布这个更新的代价。请确保你从本页获取最新源代码。

jQuery 1.0

发布于 作者

我想借此机会宣布全新的 jQuery 1.0!这个版本投入了大量工作。修复了许多错误,添加了许多新功能,以及对 jQuery 开发流程的彻底改造。

实际上,这个版本非常庞大,需要几天时间才能发布(这包括 jQuery 网站的新版本)。所以请耐心等待我们向完整发布过渡。需要解决一些问题(主要是完成新的文档),但一切都已在计划中,将在接下来的几天内准备就绪。

现在,以下是一些相关链接,帮助你入门

如果你想构建自己的 jQuery 副本,可以从 Subversion 中签出并从命令行构建它。你可以通过以下方式获取最新的 jQuery

svn co svn://jqueryjs.cn/home/jquery/src/jquery

还有更多内容即将到来。在本周的每一天,我都会发布一篇关于 jQuery 1.0 某个方面的文章,以及一些演示新代码功能的屏幕截图。如果你发现任何错误,请将其提交到错误跟踪器

我要感谢所有为这个版本做出贡献的人。这已经投入了大量工作,但旅程才刚刚开始。我迫不及待地想深入研究我们计划的一些非常令人兴奋的进步。编码愉快!

更新:这里有一个有趣的事实。jQuery 1.0 的发布几乎是在我的博客文章中 首次构思 一年后发布的。真有趣,这些事情就是这样发生的。

更新:非常酷的 Visual jQuery 网站也发布了新文档的预览版本,采用其独特的风格。其更新的文档的最终版本将在接下来的几天内发布。

jQuery 波士顿

发布于 作者

如果波士顿的任何人使用 jQuery——我将在 23 日为当地的 Drupal 小组做关于 jQuery 的演讲。我不确定它是否会被录制或转录——但我一定会把所有幻灯片或示例在演讲结束后放到网上。

有关该活动的更多信息,请访问 Drupal 网站.

另外,我希望能够在某个时候举办一个 jQuery 聚会,也许与大型会议(OSCON、AJAX Experience?)相关联。但这是另一个帖子的内容。

YShout – 使用 jQuery 实现实时聊天

发布于 作者

View of the Chat Area

Yuri Vishnevsky 刚刚发布了一个新的 AJAX 聊天应用程序,它充分利用了 jQuery。此应用程序允许你将聊天区域嵌入到网站的某个部分,并在用户互相聊天时实时更新。它非常流畅,并且运行良好。

YShout 包含许多不错的功能
– Unicode 支持
– 管理区域
– 防洪控制
– 以及历史记录查看器

您可以在 演示 页面上查看其在实际中的应用,也可以访问 项目页面

YShout Admin Area

可能最有趣的部分,从 jQuery 用户的角度来看,是这不是他的应用程序的第一个版本——它是第三个版本——并且是将 Prototype 彻底重写为 jQuery 的结果。 Yuri 说,这种转换的原因是“文件大小加上方法链”以及“直观的语法”。

如果您喜欢这个应用程序,您应该 Digg Yuri 的文章,因为我相信许多其他网站管理员也希望将其放在他们的网站上。