jQuery 1.0.3

发布于 作者

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

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

再次,Jörn Zaefferer 做了一项不可思议的工作,真正掌握了错误,修复了其中的绝大多数。这个版本的大部分成就都归功于他。

立即下载

此版本包含一个新的软件包:与此版本相关的完整 zip 文件。这包括三个版本的 jQuery(常规版、精简版和压缩版)、测试套件和所有文档。现在您不必自己构建它就可以拥有自己的副本。

已关闭的工单

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

注意:虽然下面显示了大约 60 个错误,但其中许多被垃圾邮件发送者修改过 - 所以我不能完全确定哪些是在此版本中修复的,哪些只是被重新关闭的僵尸错误。我非常确信,虽然此版本有很多错误修复,但数量不会达到 60 个。

  1. 悬停跨浏览器问题
  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. JQuery.css() 中传递的 'e' 存在问题
  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. ifModified 参数传递给 $.ajax()
  34. 在使用 msie 的 https 上 ready 不起作用 - 修复
  35. 传递给 $.get() 的参数被错误地追加到查询字符串
  36. ajax 摘要/待办事项列表
  37. 当 node1 为空时 $(‘node1/node2’) 会导致错误
  38. IE 的 float 属性
  39. IE 中不透明度不起作用
  40. $.postJSON
  41. cloneNode() 问题
  42. 在 1.0.2 中 “name.replace 不是函数”
  43. 无法隐式放弃搜索上下文(没有 .end())
  44. 在 hide/show 之后 html 的 load() 显示不正确
  45. 分离私有和公共 $.extend
  46. $.load 应自动 JQuerify
  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. CSS 中的连字符,IE6
  57. 断言 animate 不改变哈希参数
  58. .animate() 溢出未重置

jQuery 按钮比赛 - 多个奖品!

发布于 作者

更新:比赛现已结束!我要感谢所有提交作品的人。我们将很快开始评判过程。


为了鼓励人们宣传 jQuery 项目,并让尽可能多的人参与社区,我们正在举办一项比赛,以构建一个“由 jQuery 提供支持”按钮。拥有一个设计精美的按钮将是 jQuery 用户提高项目知名度的好方法,同时还能让您的网站看起来很酷!

规则

  1. 比赛将持续到 11 月 3 日。获奖者将在 11 月 5 日宣布。
  2. 所有参赛作品必须针对网络优化(8 位 PNG),图像尺寸不得超过 173×31(示例)。
  3. jQuery 团队将有权以任何方式使用提交的作品。这将防止将来出现任何版权问题。获胜者还必须能够提供 PSD(或 AI)文件,以便在将来维护图像。
  4. 将为前三名的参赛作品颁发奖品。
  5. jQuery 的通用社区将进行最终投票,由 jQuery 的创建者 John ResigRey Bango 主持。
  6. 您应该在按钮中使用 jQuery 帽子徽标(您可以根据需要重新绘制它)。如果需要,这里有一个 帽子徽标的原始 PSD

奖品

  1. 一等奖:两本书 - Ajax Design Patterns 和 John Resig 即将出版的 Pro JavaScript Techniques
  2. 二等奖:一本书 - Foundations of Ajax
  3. 三等奖:10 美元现金支付到您选择的 PayPal 账户!

奖品将通过普通邮件运送到世界任何地方。

所有提交作品应通过标准超链接在本帖的评论部分进行。在提交作品时,请确保您提供有效的电子邮件地址。

这是您真正帮助扩展 jQuery 社区的机会,通过创建一个顶级按钮,它将获得大量曝光率。祝大家好运!

Firefox 之友 - Mozilla 使用 jQuery。

发布于 作者

Mozilla 刚刚发布了 http://www.worldfirefoxday.com/,这是一个感谢所有为 2006 年世界 Firefox 日做出贡献的人的网站。该网站允许用户搜索朋友姓名,这些姓名以有趣的方式显示。

该脚本是 Rotator 脚本和一些灵活的 AutoComplete 的组合,后者为搜索提供支持。

慢慢地输入一个名字,看看结果是如何实时过滤并加载到轮播中的。然后,如果结果数量超过 20 个,您可以“翻页”。该脚本支持“上一页”按钮,但它被隐藏了。

screenshot.jpg

也发布在 Drinking rockstars and programming

斑马表格对决

发布于 作者

作为之前事件选择器对决的后续行动,出现了新的斑马表格对决

挑战

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

规则

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

预期结果
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. fx.custom() 无法在 IE 中为不透明度使用
  6. IE 中不透明度不起作用
  7. jQuery IE6 中带有基本 href 的 bug
  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 为空时 $(‘node1/node2’) 会导致错误
  18. add 不会合并集合
  19. extend 不 (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 bug
  34. $.postJSON
  35. 传递给 $.get() 的参数错误地追加到查询字符串中,
  36. 调用没有参数的 load 会抛出异常
  37. 在 IE 中返回脚本标签失败
  38. 不可用的响应头会破坏 Firefox 1.0
  39. ifModified 参数传递给 $.ajax()
  40. AJAX 中的超时作为参数
  41. 替换 :input、:radio 等
  42. Ajax 重构
  43. jQuery 的 toggle(); 与 moo.fx 的 toggle(); 混淆
  44. 解析不透明度错误
  45. .constructor == Function 不足以
  46. [补丁] $().hasClass()
  47. 创建 IE 5.0 支持插件
  48. [补丁] IE 在没有边框的情况下 innerWidth 和 innerHeight 失败
  49. sibling() 返回兄弟节点和主体
  50. IE 在 #element/* 表达式中失败
  51. XHTML 表格
  52. 当 HTML 结构包含文本时,wrap 会中断
  53. 针对属性 *=、^= 和 $= 的修复,这些属性在特殊属性情况下有效。
  54. `]` 中断选择器
  55. 再次包含 jQuery 会覆盖已注册的 document-ready 事件
  56. 表达式在 FireFox 1.5.0.6 中生成错误
  57. 支持 ancestor:: 轴
  58. prev() 无法按预期工作
  59. nth-of-type
  60. Animate 函数发布
  61. attr('checked', true) 无法工作