jQuery 1.6 Beta 1 发布
jQuery 1.6 的开发即将完成!我们希望发布一个 Beta 版,以便每个人都可以在其应用程序中开始测试代码,确保没有重大问题。
jQuery 1.6 Beta 1
您可以从 jQuery CDN 获取代码
您可以通过将该代码放入现有应用程序并告知我们任何不再起作用的部分来帮助我们。请 提交错误,并确保提及您正在针对 jQuery 1.6 Beta 1 进行测试。
我们希望鼓励社区中的每个人尝试并 参与 回馈 jQuery 核心。我们已设置了一个 完整页面 的信息,专门用于帮助您更多地参与团队。团队就在这里,随时准备帮助您帮助我们!
jQuery 1.6 Beta 1 变更日志
1.6 版本的当前变更日志。
- #6782 优化 innerHTML 的正则表达式,允许更多 HTML 代码段使用更快的 method。
- #7328 获取 data- 属性时,根据 W3C HTML5 规范,对任何嵌入的破折号进行后置大写。
- #4146 修复输入元素宽度/高度的不一致性。
- #7345 添加对 .css() 中显式/相对字符串值的 supports。
- #7783 修复 $.proxy 以类似于(并使用)Function.prototype.bind 的方式工作。
- #8753 允许在 jQuery.Event 对象上明确定义特殊属性。
- #7587 在 $.parseJSON 上绕过正则表达式过滤器,如果 window.JSON.parse 可用,则使用本机抛出的异常。
- #8150 修复了一个问题,即在 IE6/7 中删除 width 和 height 属性时,设置为“”实际上设置为 0 而不是 auto。
- #6562 修复了一个问题,即如果 DOM 节点具有“target”的 ID,并且您尝试设置 target,则会失败。
- #8744 确保脚本传输中止 method 实际上即使存在 readyState 也删除了 script 标签。
- #8712 当触发自定义事件时,将它们冒泡到窗口。
- #8635 修复了 Firefox 中的未捕获异常,并删除了不必要的“手动”垃圾回收。
- #8568 修复了一个问题,即 live 事件回调可能会在 event liveHandler 函数中乱序。
- #8417 禁用 $.ajax() JSON POST 的 JSONP 替换。
- #8099 修复了一个问题,即 SPAN 元素在 show() 上变为块级元素。
- #8593 修复了一个问题,即当通过 jQuery 附加单独的处理程序时,DOM 0 事件处理程序会被调用两次。
- #8402 修复了一个问题,即实现 window.getComputedStyle 的浏览器完全忽略了 jQuery.css() 中的“fixed property”。这使得 jQuery.cssProps 的实现更加通用。
- #8401 和 #8403 .修复了 jQuery 在设置不透明度时“推倒”其他 IE 过滤器的问题。
- #7071 修正了在 IE 上访问 VML 元素的“type”属性失败的问题。
- #4321 修复了一个问题,即 $(“#”) 在 Opera 9.6 上返回“undefined”并抛出异常。
- #7883 就像 .bind 一样,.delegate(和 .live)现在接受 false 作为 function(){return false;} 的快捷方式。
- #2773 $.fn.is 和 $.fn.not 现在接受 DOM 元素和 jQuery 集合。
- #8777 undelegate() 现在接受自定义命名空间事件。
- #3116 .attr() 现在也适用于 SVG 规范的只读接口。
- #8732 更改了对 focusin 事件支持的功能检测,以便 IE9 不会出现重复的事件。
- #7369 现在可以对具有属性的断开连接的节点使用 .closest()。
- #4366 修复了 $.each 在 IE 中传递 document.styleSheets 时失败的问题。
- #7931 修正了当在空 jQuery 对象上调用时,$.fn.scrollTop 和 $.fn.scrollLeft setter 都返回 null 的问题。
- #8101 我们现在使用 requestAnimationFrame 而不是 setInterval 来进行动画(如果可用)。
- #8018 修复了对 frameElement 的不安全访问会导致跨域 (i)frame 中出现错误的问题。
- #6180 jQuery.clean 不再影响或修改类型不是 text/javascript 的 script 标签。
- #3685 修正了之前在选择名为“name”的元素的表单时出现的错误。
- #8790 对于触发且不是本机事件(即不应该有内联处理程序)的情况,我们应该立即退出以进行优化。
- #8814 修复了 core.js 中的一个小问题,我们不需要在 fallback inArray 定义中检查 indexOf。
- #7472 和 #3113 修复了如果表单中的属性名称与属性类型相同(例如,id、name 等),则会遇到冲突的问题。
- #7054 确保 event handler 中的 DOM 元素 ref 被 cleanData 删除,以避免 IE6/7/8 内存泄漏。
- #8418 修复了 attr(“name”,”value”) 在 IE 7 中无法设置 name 属性值的问题。
- #7996 修复了 Safari 5.0.3 在尝试使用 jQuery 的 .attr() 在 script 标签上访问名为“event”的属性时出现的错误。
- #8772 修复了 IE9 无法优雅地处理设置不支持的输入类型(如“range”)的问题。
- #4283 作为 .attr() 重写的一部分,false 将删除布尔属性,如 checked。
- #8699 .attr() 不再在缺少属性时返回 -1,而是返回 undefined。
- #6837 修正了 IE 无法在表单重置后返回 select 中默认/第一个项目的正确值,而是返回空字符串的问题。
- #4464 修复了 IE 无法获取分离的 IMG 元素的 width 属性的错误。
- #7485 修复了不一致性,即选择器不会返回所有具有属性的元素,即使使用 attr() method 检查时它返回一个值。
我喜欢新的 jQuery 版本
我喜欢台灯。
很高兴看到这些 .attr() 更改!感谢您的辛勤工作。
我对 proxy 的增强(#7783)感到高兴。
不幸的是,Ben Almans Pub/Sub 并没有实现……我认为许多人会看到某种 jQueryEE(“Dojo-light”),它具有标准化的模板引擎、依赖项管理(defer.js/require.js 等)和传统的基于类的继承内置。重点在于“内置”,这意味着可互换性。Javascript 已经取得了很大的进步(感谢 jQuery 和其他人),但它仍然面临着太多选择。
我的两分钱。
#8755 仍然是一个问题。
有什么新功能吗?
此列表中的一个票证 #7061 尚未标记为已修复,根据 http://bugs.jquery.com/ticket/7061。
如何创建一个只支持 IE8 及以上版本、FF4 及现代浏览器合理版本的版本?
???1.5.2???????
jQuery 在每个版本中都变得越来越大,这主要归因于修复,但也包括新功能。我不会说 jQuery 臃肿(因为它还没有包含电子邮件客户端),但有很多功能我并没有使用。
我们是否可以期待在不久的将来实现模块化或自定义构建?
我同意 Blaise Kal 的观点,我认为 jQuery 需要变得模块化,因为我也没有真正使用 jQuery 提供的所有功能。
查看 git hub 中的说明。
我认为你可以构建自己的自定义功能,只是需要一些依赖项。
https://github.com/jquery/jquery
感谢 Shawn 的回复。
“一些依赖项”听起来像是进入了一个痛苦的世界 ;)
我希望 jQuery 能像 jQuery UI 一样拥有某种构建系统,这样我就可以愉快地选择组件,而不用担心依赖项,也不必自己深入代码或文档。
@Blase – 最好的方法是每个人都使用来自 CDN 的完整 jQuery 下载 – 例如 Google CDN: https://ajax.googleapis.ac.cn/ajax/libs/jquery/
由于 CDN 将 Expires http 标头设置为提前一年,因此您使用 jQuery 驱动的网页可能根本不需要下载它 – 它可能在访问其他网站时已经被缓存。现在,jQuery 被超过 40% 的前 10,000 个网站使用,在 jQuery 发布后的几天内,它就被几乎所有活跃使用的浏览器缓存了。
如果每个人都开始使用不同的构建,共享缓存的优势就会大大减弱。
animate 将在哪个版本中支持浏览器原生 transform 和 transition?
@Filip Babalievsky,是的,但是使用外部 CDN 通常要慢 10 倍,仅仅是为了获得一个 302 响应,因为 ping 等原因。而且我还发现有时请求完全失败。
是否有计划让 jQuery 类似于 jQuery UI,让我们可以选择所需的组件?
@Petah,当使用外部 CDN 作为 jQuery 这样非常流行的库时,甚至可能不需要 ping(即条件 GET)。您的访客的浏览器可能已经缓存了该库。
当您在同一台机器上进行开发,并且需要经常“刷新”(例如 F5)您开发的页面时,情况会有所不同。
每次刷新都会包含对您页面上所有资源的条件 GET,但在“生产”中,您的访客通常不会进行“刷新” – 因此不需要等待 304 响应或重新加载。
此外,bug #2616 也包含在本次发布中。jQuery.map 现在支持对象:D
http://bugs.jquery.com/ticket/2616
@Petah,对于本地开发,我使用某种 HTTP 代理(例如 Charles)将远程文件(例如 jQuery)映射到本地文件。这会大大加快加载时间,并且我无需在开发期间更改脚本 src(或使它们成为条件的)。
为什么不使用 CDN 版本和本地回退,就像 html5boilerplate 一样?
除了错误修复,还有其他新功能吗?
我刚检查了 Google 托管的 jQuery,它返回了以下标头。这意味着,在大多数情况下,您的浏览器在本地缓存中已经拥有该文件后,甚至不会再进行一次往返 – 甚至不会为了获取 304 响应。它就在那里。
Expires Tue, 24 Apr 2012 18:47:26 GMT
Cache-Control public, max-age=31536000
CDN 是解决 jQuery 文件大小问题的最佳方案… 如果它确实是一个问题的话…
Jquery inArray() 函数
for ( var i = 0, length = array.length; i = 0;) {
if ( array[ i ] === elem ) {
return i;
}
}
但这样更快,因为 0 是常量,length 是变量。
for (var i = array.length; –i >= 0;) { if ( array[ i ] === elem ) {return i; }}
我希望 jQuery 能像 jQuery UI 一样拥有某种构建系统,这样我就可以愉快地选择组件,而不用担心依赖项,也不必自己深入代码或文档。
jQuery 被超过 40% 的前 10,000 个网站使用,在 jQuery 发布后的几天内,它就被几乎所有活跃使用的浏览器缓存了。
如果每个人都开始使用不同的构建,共享缓存的优势就会大大减弱。