jQuery 1.8 发布
八月变得更热了,因为 jQuery 1.8 的最终代码来了!您可以从 jQuery 的 CDN 获取代码
- https://code.jqueryjs.cn/jquery-1.8.0.min.js (压缩并最小化,用于生产)
- https://code.jqueryjs.cn/jquery-1.8.0.js (未压缩,用于调试)
通常,Google 和 Microsoft CDN 也很快就会有这个文件。请不要问我们它们什么时候会上线,我们不知道,我们也不控制那些 CDN!如果您迫不及待地想开始使用,请直接从上面的 jQuery CDN 使用我们的副本。它们是相同的代码。
我们预计不会收到关于此版本的任何错误报告,因为已经发布了几个测试版和一个候选版本,每个人都有很多机会对其进行彻底测试。哈哈,这个笑话永远不会过时。我们知道,你们中太多人会在用自己的代码尝试之前等待最终版本。所以现在真的没有理由再等待了,您可以看看是否存在您之前本可以报告的错误。
如果您确实发现了错误,请在 jsFiddle 或 jsbin 上创建一个测试用例,并在我们的 错误跟踪器 上提交错误。如果您不确定是否发现了错误,请在我们的 论坛 上提问。jQuery 核心 1.8.0 与最新版本的 jQuery UI (1.8.22) 和 jQuery Mobile (1.1.1) 兼容。如果您在涉及它们的页面上报告错误,请确保更新它们。
jQuery 1.8 的快速浏览
让我们回顾一下此版本中的重大更改
Sizzle 重构:由于 Timmy Willison 的重写(实际上是两次重写),jQuery 的选择器引擎比以往更快。当然,大多数浏览器现在都有 querySelectorAll
,但几乎所有实现都在某种程度上存在缺陷,造成了一条充满跨浏览器坑洼的道路。Sizzle 为您平滑了这条道路。此外,您可能希望使用那些有用的 jQuery 选择器扩展,例如使用复杂选择器的 :has()
或 :contains()
。哦,对了,它仍然支持 IE6/7。
重新构思的动画:随着时间的推移,jQuery 中的动画代码变得有点混乱。Corey Frang 勇敢地潜入了这片沼泽,成功地去除了大部分的鳄鱼,嗯,错误。大部分更改都在幕后进行,因此现有动画应该可以正常工作(并且工作得更好)。但也有一些很棒的添加,可以使动画更通用、更可扩展。一个值得注意的非常酷的功能是使用 Promise 中的进度回调。我们仍在努力编写详细的文档,但我们确实有一个 草稿。另外,这里有一个示例,展示了新代码的实际应用: http://jsbin.com/odocid/1/edit.
自动 CSS 前缀:当您在 .css()
或 .animate()
中使用 CSS 属性时,我们会使用该浏览器(在适当的情况下)的正确带前缀的属性。例如,以 .css("user-select", "none")
为例;在 Chrome/Safari 中,我们将该值设置为 "-webkit-user-select"
,Firefox 将使用 "-moz-user-select"
,而 IE10 将使用 "-ms-user-select"
。
使用 $(html, props) 提高灵活性:在 jQuery 1.8 中,您可以在传递给 $(html, props)
的对象中使用任何 jQuery 方法或插件。以前,您只能使用一小部分方法名,并且没有记录的方法来添加到列表中。现在根本不需要列表!但是请注意,如果随后添加了与 HTML 属性名称相同的插件,这会导致代码的行为发生变化。
修复了 160 多个错误:特别是 Sizzle 和动画的重写为修复一些长期存在的错误提供了动力,其中一些错误已经存在两三年了。Mike Sherov 处理了大部分未解决的 CSS 和定位问题,使我们在那里的错误数量接近于零。我们也没有放弃,仍在努力消除 IE 6/7/8 和现代浏览器之间的烦人差异,因此您不必处理这些差异。
更小的代码大小:尽管进行了代码清理、新功能和错误修复,但 jQuery 1.8 的压缩文件大小实际上比 jQuery 1.7.2 小了几百字节。缩减大小并不是我们在此版本中的主要目标,但我们认为控制代码增长很重要,并且我们确实做到了。非常感谢 Richard Gibson 带领整个项目进行代码压缩。
模块化:如果您了解项目的 jQuery 依赖项,则可以使用新的 grunt
基于构建系统来删除您知道不需要的 jQuery 部分。我们在 1.8 中做的事情仅仅是一个开始,随着我们向更高版本发展,您将看到更灵活的功能。
完整的更改日志在下面提供,如果您想知道您喜欢的错误是否已修复,请查看。
已删除的内容
简而言之,“很少”。我们希望为在 1.9 中将要删除的已弃用功能提供充足的通知期,以便人们有时间调整自己的代码。在 1.8 中删除的几个内容是未记录的内部内容,一些人巧妙地对其进行了逆向工程,但使用未记录的功能始终存在风险。以下是已删除的项目
$(element).data(“events”): 在 1.6 版本中,jQuery 将其内部数据与用户数据分离,以防止名称冲突。但是,有些人使用未记录的内部“events”数据结构,因此我们使其可以通过 .data()
检索。这现在在 1.8 中被删除,但您仍然可以通过 $._data(element, "events")
获取事件数据以进行调试。请注意,这不是受支持的公共接口;实际数据结构可能会在不同版本之间发生不兼容的变化。
Deferred.isResolved() 和 Deferred.isRejected(): 使用 N-1 个布尔方法来获取 N 状态变量的状态有点愚蠢,因此我们在 jQuery 1.7 中添加了 Deferred.state()
,以便您在一次调用中获得状态。因此,这两个较旧的方法不再需要。对于您经常需要以字符串形式了解 Deferred 状态的调试场景来说,这更为方便。
$(element).closest(Array) 返回 Array: 这是 .closest()
方法的奇怪签名,用于旧的 .live()
,但据我们所知,没有其他代码使用它。.closest()
返回 jQuery 对象的正常用法不会受到此签名被删除的影响。
$.curCSS: 此方法从 jQuery 1.3 开始只是 jQuery.css()
的别名。虽然它从未成为记录的 API 的一部分,但已知一些外部代码使用它,可能认为它“更高效”。现在它“消失了”。
$.attrFn: 另一个未记录的项目,用于定义哪些方法可以与 $(html, props)
签名一起使用。虽然它在 jQuery 1.8 中没有功能作用,但我们在 jQuery 中保留了一个空 $.attrFn
,以防止使用它的代码抛出错误。警告:这将在 jQuery 1.9 中完全删除,因此请更新您的代码!
荣誉属于哪里
如果没有才华横溢的 jQuery 核心团队的辛勤工作,这个版本是不可能实现的:Julian Aubourg (jaubourg)、Corey Frang (gnarf)、Richard Gibson (gibson042)、Mike Sherov (mikesherov)、Rick Waldron (rwaldron) 和 Timmy Willison (timmywil)。
特别感谢在 jQuery 1.8 开发周期中通过补丁贡献支持核心团队的 jQuery 团队和社区成员:Andy Monat、Robert Katic、Joaoh Bruni、Sindre Sorhus、Oleg Gaidarenko、Yehuda Katz、Timo Tijhof、Dominik D. Geyer、Scott González、Jörn Zaefferer、Matt Farmer、Trey Hunner、Jason Moon、Ben Alman、Jeffery To、Kris Borchers、Daniel Herman、Vladimir Zhuravlev、Jacob Thornton、Chad Killingsworth、Nowres Rafid、David Benjamin、Uri Gilad、Chris Faulkner、Elijah Manor 和 Daniel Chatfield。
我们也非常感谢那些花时间报告错误的人;如果我们不知道错误的存在,我们就无法修复它。如果您正在寻找一种简单的方法来为 jQuery 做出贡献,请了解 错误跟踪器,并通过创建简化的测试用例来帮助我们,这些测试用例可以清楚地演示错误。一旦我们能够重现问题,解决方案通常并不遥远。这些测试用例成为单元测试的基础,可以防止我们在以后的版本中更改代码时发生问题。
jQuery 1.8 更改日志
Ajax
- #8205: JSONP 随机结果导致 IE8 中发生内存泄漏
- #8653: jQuery.param 在查询字符串中输出 "null" 和 "undefined"
- #9399: 弃用 jqXHR.success 和 jqXHR.error
- #10285: evalScript rcleanScript 替换在 IE8 中失败
- #10524: jQuery.fn.load 未将数据参数与 jQuery.ajaxSetup 合并
- #10944: $.ajax 并不总是返回实现 Promise 接口的对象
- #11013: 弃用使用 Deferred/Promise 与同步 $.ajax
- #11402: evalScript 函数在 IE 中出现错误 80020101
- #11743: jQuery 在 $.appendTo() 中的脚本标签 ajax 请求期间静默地忽略错误
- #11778: 缓存的 XHR 请求仍然应该异步解析
- #12122: jQuery.ajax() 异步弃用与 $.Deferred 一起使用
属性
- #11153: jQuery 1.7 在 IE 8 中删除回车符
- #11212: Sizzle.getText 将不可分割空格转换为 IE 中的空格
- #11547: XML DOM .removeAttr() 未删除大小写敏感的属性
- #11962: 标准化空集的 getter 返回值。
- #12127: 克隆在 IE10 中未正确复制选中状态
构建
- #11767: 支持无效果的自定义构建
- #11789: 更新 README 以描述 grunt 构建系统
- #11856: 模块化尺寸
- #11857: 模块化 css
- #11865: 模块化偏移量
- #11965: 创建 deprecated.js,尽可能包含已弃用的内容
- #12059: `grunt custom` 应该压缩 - 还应该将排除的模块添加到标题中
- #12158: jQuery 1.8rc1 不适用于 YUICompressor 1.4.7
核心
- #10657: 弃用 jQuery#size(),支持 jQuery#length
- #11290: 选择器被解释为 HTML
- #11470: 添加内置的 readyP promise
- #12018: $(document).ready() 在 IE8 中过早触发
- #12026: 允许 $(html, props) 使用任何 jQuery.fn 方法
CSS
- #10373: `document.defaultView` => `window`
- #10394: jQuery.cssHooks.opacity 在非 IE 浏览器上抛出异常
- #10413: width、innerWidth、innerHeight、outerWidth、outerHeight 对隐藏父元素的 "box-sizing: border-box" 子元素不准确
- #10679: CSS3 供应商前缀支持
- #11004: getWH 在 box-sizing 为 border-box 时错误地删除了填充和边框宽度
- #11787: 删除 jQuery.curCSS
- #12088: Webkit 现在为更多 getComputedStyle 属性返回百分比
- #12148: 隐藏事件在切换时不会触发
数据
- #7579: jQuery.data() 截断从 data-xxx 属性获取的数字
- #10589: 删除 $.fn.data("events")
- #11435: 删除过时的测试代码以从 .data 的返回值中删除 toJSON
延迟
- #11010: 使 Deferred.then == Deferred.pipe 像 Promise/A 一样
- #11011: 允许传统选项对象用于 $.Callbacks 标志
- #11736: 删除 Deferred .isResolved() 和 .isRejected()
- #11749: 当多个 Deferred 对象传递给 $.when() 时,保留上下文对象
尺寸
- #6724: 在移动版 Safari (iPhone) 中,$(window).height() 错误
- #10877: 使 outerWidth/Height 成为 setter
- #11293: 读取空 TD 的宽度或 outerWidth 会改变列的宽度值
- #11604: 将 $(elem).width(-val) 从 no-op 更改为 $(elem).width(0)
- #11724: $(document).height() 在 Firefox 12 中发生了变化
效果
- #7109: 在 webkit 中,动画宽度以无效宽度开始
- #7157: 动画回调显示元素仍然是 ":animated"
- #8387: jQuery 1.5 hide/show 与 webkit 浏览器上的内联和内联块元素有关的闪烁问题
- #8627: .animate() 在 IE 中对 letterSpacing 失败(1.5.1 中的回归)
- #8892: 使用 fadeIn() 和 jQuery.fx.off = true 时,回调在对象显示之前被调用
- #9217: 动画元素在动画完成之前被移除时,IE8 中出现 javascript 错误
- #9505: 在 WebKit 中混合百分比和像素时,animate() 问题
- #11635: 明确的 overflow:auto 在动画期间被内联 overflow:hidden 覆盖
- #11755: animate 及其别名不应该使用 :hidden 选择器
- #11797: 新的动画相关事件
- #11854: 百分比动画跳到最后
- #11971: 在 IE8 中,动画 background-position 失败
- #11999: 在 Chrome 中,固定 div 上的增量动画进行减法而不是加法。
- #12117: 当动画高度或宽度为 0 时,overflow hidden 没有正确设置
- #12138: 在 Chrome 中,fadeOut 不适用于基本 SVG 元素
- #12150: 当行显示和隐藏时,border-spacing 属性累积
事件
- #8545: IE 中事件泄漏
- #10067: 也在 document.readyState === 'interactive' 时触发 $.ready
- #10895: bindReady 中的 doScrollCheck ie hack 毫无理由地降低了 ie7 的性能
- #11101: 弃用 trigger 方法中的 "exclusive" 事件选项
- #11315: delegate() 和 :first 在具有相同类别的嵌套元素中存在问题
- #11328: Ctrl 键在 Windows 上不会将 event.metaKey 设置为 true
- #11382: Mouseenter 不会在禁用的输入元素上触发
- #11500: 错误:当在 IE7 和 IE8 上手动触发时,"change" 事件处理程序不会执行
- #11621: 在文档上触发事件不会冒泡到窗口
- #11718: 弃用 .data() 事件
- #11719: 弃用 .bind("ready") 事件
- #11731: 弃用 "hover" 伪事件
- #11733: 弃用 .load()、.unload() 和 .error() 方法
- #11764: 允许在禁用的元素上委派非本机事件
- #11786: 弃用 .toggle( handler, handler, … ) 签名
- #12203: .undelegate() 没有参数会从父元素中取消绑定所有处理程序
操作
- #8894: 在 IE 中,clone() 之后调用的 appendTo() 等方法在返回错误的 jQuery 集时
- #10324: Clone 在 IE9 中不会复制对象元素的 innerHTML
- #11231: Append、Prepend、After、Before 应该接受数组作为第一个参数
- #11325: 改进 domManip/buildFragment/clean
- #11338: .replaceWith() 和断开连接的节点行为不一致。
- #11528: ie8 序列化错误与 .html() 一起影响 html5 标签
- #11566: 当节点是 DocumentFragment 时,node.append 等不起作用
- #11617: 定义 $.parseHTML 方法用于创建 HTML 片段
- #11809: .text(val) setter 中的内存泄漏?
- #11898: 具有复杂 :not() 选择器的 prevAll() 以错误的顺序返回结果
- #12132: 当克隆没有 parentNode 的对象元素时,IE10 错误
偏移
选择器
- #3778: 选择器匹配问题
- #5568: 选择器在 FF/IE 中对注释标签的行为不同
- #7596: xpath 选择器属性名带有方括号 [] 失败
- #8473: 在 IE9rc 中,*[tabIndex] 也会选择所有没有 tabindex 的元素
- #8906: .(prevAll('span:has(input,select,textarea)')
- #9400: 弃用 :text、:radio、:checkbox 等选择器扩展
- #9810: 重写位置选择器逻辑
- #10003: 来自 #6963 的回归/BC 中断
- #10074: 将两个 [] 选择器与 :first 连接在一起不起作用
- #10499: :has() 内部的 :nth-child() 被视为在外部
- #10570: 当页面上有跨域 iframe 时,:text 选择器在 IE7 中抛出错误
- #10697: Sizzle 大修
- #10799: [name="name"] 选择器结果不一致(还会破坏 .has)
- #10809: :focus 伪类解析器中使用 ".activeElement" 的不正确测试
- #11109: Sizzle: Expr.relative 过早截断
- #11120: IE7 中的一些选择器中的制表符会中断
- #11814: Sizzle 的元素根 QSA 策略(即附加临时 ID)没有考虑逗号和其他选择器划分
- #11826: 探索 Sizzle 中 matchesSelector 的解析缓存系统
- #11902: :not + :contains 选择器
- #11918: 使用带 ':' 的标签名时,:eq 选择器问题
- #11959: 添加对 :active 选择器的支持
- #11961: 使用 jQuery#is 时,“最大调用堆栈大小已超过”
- #11966: 后代选择器
- #11969: 收集兄弟姐妹时缺少空检查
- #12054: 未捕获的 TypeError:对象 #<HTMLDocument> 没有方法 'getAttribute'
- #12057: Sizzle 回归
- #12082: .find() POS 选择器在 1.8b2 中不再起作用
- #12153: 选择器中出现错误
支持
- #9385: 弃用 jQuery.browser
- #11163: jQuery.support.checkClone 始终为 true
- #11249: Chrome 18 中加载 jQuery 1.7.1 时出现 CSP 错误
- #11439: 使用 jQuery.support.parentNode,但不再定义。
- #11721: 弃用并删除 jQuery.support.boxModel 的内部使用
- #11757: jQuery 1.7.2 在 iframe 中的 IE 8 内存积累
- #11766: 将 jQuery.support 移动到 "unstable" 状态
遍历
- #9800: 新方法:.addBack(取代 .andSelf)
- #11539: 所有版本的 jQuery 都不支持 $([text Element].parentNode).has?(other_element) 上的 .has()
- #11543: .has 不适用于分离的元素
- #11706: `.has()` 在文档片段中失败
- #11738: 删除 .closest(Array) 返回 Array
谢谢!
哇,真棒。它已经可以投入生产了吗?
真的太棒了,谢谢。
非常感谢。
还在等待用于下载单独模块的生成器。现在 jQuery 是我网站上最大的文件,当我将其拆分成 15Kb 时,我的网站速度将提高约 - 150 毫秒,哈哈哈 ;)
PS:很棒的工作,bazinga
本周一直在测试 RC 版本,一切看起来都很好。非常喜欢自定义构建的灵活性,并希望您在未来的版本中进一步扩展粒度。我发现 “-ajax/jsonp” 是缩减一些 ajax 代码而不会丢失所有代码的好方法。
非常令人印象深刻的工作,迫不及待地等待 v2.0 :)
非常感谢你们!2.0 版本是将 IE 从画面中移除的版本,是吗?(至少是旧版本)。
该死的 scrollTo 插件不起作用 :(
eq
$(‘body’).scrollTo( $(‘.gotoo’) […]
新版本 1.8.0 损坏了 jQuery UI 对话框控件。确认按钮显示没有文本/值。
请在 git 中标记发布,以便可以从以下位置轻松下载源代码的完整存档
https://github.com/jquery/jquery/tags
谢谢。
我的错,它在那里。
非常感谢
完美不是在无法添加更多东西时实现的,而是在没有东西可以删除时实现的。~ 安东尼·德·圣-埃克苏佩里
太棒了……但尺寸仍然很大
无论如何,祝贺你们……你们做出了很棒的工作
祝贺发布。应该去掉对 IE6/7 的支持。这样会使重写更容易,代码也会更简洁。
祝贺你们,干得好!
啊,.live()(这在之前的版本中已被弃用)被删除了吗?我想我将切换到 .on()。
干得好,伙计们 - 谢谢!
干得好,伙计们!
jQuery 团队,干得好!
致:jQuery 开发团队 - 伙计们,干得好!向你们致敬,干杯 ;-)
感谢你们删除了无用的方法
“#11733:弃用 .load()、.unload() 和 .error() 方法”
太棒了!
在这个新版本中,$.browser 的支持被删除了吗?
顺便说一句,你们做得真棒!
世界变得更美好!谢谢你们!
出色工作,期待升级!
Google CDN 在这里:https://ajax.googleapis.ac.cn/ajax/libs/jquery/1.8.0/jquery.min.js
新版本 1.8.0 损坏了 jQuery UI 对话框控件。确认按钮显示没有文本/值。
问题在于 ver. 1.8.0 中的空函数 “attrFn”
UI 对话框发现空 attrFn 并使用它。
感谢 1.8,它真的更快了。
您好。我想要报告一下,从 jquery.com 和 Google 的 CDN 下载的 1.8.0 版本,似乎破坏了我运行的几个网站上的 jQuery 脚本。有些包含 jQuery UI,有些没有。
欢呼!
请修复与 jQuery UI 的向后兼容性,可以避免很多因为版本不兼容导致的 bug 报告。
@River 你可以使用 https://jqueryui-blog.jqueryjs.cn/2012/07/jquery-ui-1-8-22/
哇,酷。修复了很多问题,兼容性问题很少。
有没有那些说明性能改进的图表?(如果有的话)我们以前一直有这些图表,直到大约一年前。
另外,有没有针对插件开发人员的指南,解释在插件需要兼容 jQuery 1.4 及更高版本时,应该使用哪些内容,不应该使用哪些内容,以及如何使用?
目前,我正在开发一个需要与 jQuery 1.6 及更高版本兼容的插件,因此我应该使用 isRejected(),因为 state() 还没有提供。但是,如果 isRejected() 将被移除,我基本上就不能使用它们,或者检查哪个可用(这很麻烦,还会增加我的代码量)。
我喜欢你们为 1.8 提供的 CDN。我看到 Google 现在已经更新了他们的 URL。Google 的 URL 很灵活。
上周这个 URL 提供的是 1.7,但现在它自动提供 1.8
ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
但是,如果你指定 jquery/1.7/jquery.min.js,它会给你提供最新版本的 1.7。
如果你将其更改为 jquery/1.7.1/jquery.min.js,它会给你提供最新版本的 1.7.1。
你们是否愿意/能够为你们托管的/CDN 版本的 jQuery 实现这样的 URL 结构?
我对 $.load() 的移除有点困惑?$.load 文档中没有提到弃用(应该吗?)。这是否意味着 $(window).load(function() { }) 已被弃用?应该用什么代替?
我在过去的一个小时里一直在查看这些修复,希望它不会破坏我的代码!
现在正在更新 jQuery 和 jQuery UI =) 喔喔。大家辛苦了!
我不确定这是否是本页面的相关评论,因为这可能不是 JQuery 问题,但我刚刚注意到,这个新版本似乎破坏了 FusionCharts XT 插件。我在上面的更改日志中没有看到任何明显的内容,但图表在 JQuery 1.7.2 中可以正常工作,但在 1.8.0 中却不能正常工作(图表不使用 JQuery,但仅仅加载 JQuery 就会导致图表无法正常工作)。
干得好!
不错!
jquery 最棒!
新版本,更多新 bug。
@pgrtools
运行良好.. http://jsfiddle.net/Aresa/
@outerHeight.complainers
使用“true”而不是数字“1”有什么问题?是的,我理解在布尔值中,“true”和“1”应该解析为相同的值,并且不应该专门查找字面字符串“true”,而应该查找任何等效于“true”语句的值,但如果一个起作用而另一个不起作用……你的网站上有多少行代码,你的代码中使用 .outerHeight(1) 的次数有多少,以至于不能简单地将“1”替换为“true”?然后抱怨它“破坏了你的网站”?仅仅因为一个很小的修改,而不是因为多个函数导致的多个不兼容问题,就说它“破坏了你的网站”?说真的……感谢你指出了这个问题,但说它“破坏了你的网站”——jQuery 中众多函数中的一个——而不是因为多个函数导致的多个错误,这实在是愚蠢。
代码中的错误字符会导致页面出现错误,但修复这个字符,一切都会恢复正常。这不是“破坏了网站”,这是任何编码过程的一部分,这就是你编写代码、测试、检查是否需要调试、调试(如果需要)、再次测试、反复重复,直到没有错误,然后将代码加载到网站的原因。这是任何编程语言的编码基础知识。现在,如果错误导致你必须重新加载整个网站,因为修复字符(本例中是“true”和“1”)并重新加载页面并不能让页面正常显示,而必须完全删除这行代码才能让整个网站正常运行,即使这行代码没有包含在你加载的任何其他页面中……那么你就可以说它“破坏了你的网站”,我会谦虚地接受你的说法。在此之前,请……我们能不能专业一点,不要互相指责,而只是简单地指出错误、错误的原因以及修复错误的建议,这样……等等……错误就可以修复,然后你就可以继续你的快乐旅程了?
我知道这一部分不是用来发布 bug 或修复 bug 的。
但似乎,当传入一个数字时,outerHeight 试图将一个值设置为 jQuery 集合,虽然这不是一个记录的“功能”,但返回的对象就是 jQuery 集合本身……
只需使用 !0 作为 true 的安全缩写,就像 uglify-js 所做的那样。
DerWaldschrat
关于:$(element).data(“events”) 已移除
将事件处理程序从一个元素复制到另一个元素的正确方法是什么?
我正在使用这个变通方法——从对象获取事件处理程序并将其附加到另一个对象——它可以工作,但如果我更新到 1.8,它将停止工作。是的,我也是那些“巧妙地反向工程了……”的人,但现在我不觉得自己那么聪明了,因为我不知道是否有正确的方法来完成我正在做的事情,但要用一种标准的非变通方法 :-(
请帮忙。提前感谢。
“Sizzle 重构:jQuery 的选择器引擎比以往更快,这要感谢 Timmy Willison 的重写(确切地说,是两次重写)。当然,现在大多数浏览器都有 querySelectorAll,但几乎每种实现都在某些方面存在不足,创建了一条布满跨浏览器坑洼的路。Sizzle 为你平整了这条路。此外,你可能希望使用 jQuery 选择器扩展,例如带复杂选择器的 :has() 或 :contains()。哦,对了,它仍然支持 IE6/7。”
结果
$(“#element1, #element2, #element3, #element4, #element5, #element6?).show(); 在 IE7 中使用 jquery-1.8.0.js 比使用 jquery-1.7.2.js 慢。
请帮忙。提前感谢。
@ h2gc8fgiui33hfu3
scrollto() 插件已修复 -> https://github.com/flesler/jquery.scrollTo
我更喜欢使用 jQuery 1.7.2!!!
祝贺 jQuery 团队。
针对 Ic3Ninja 的怒火
我的网站和 Web 应用总共有数十万行代码。当出现破坏现有代码的更改时,我需要逐行检查并找出为什么页面无法加载或功能出现故障。这是时间,而时间就是金钱。
我只能选择放弃新版本可能提供的任何改进,直到我有时间回过头来找出哪些更改破坏了我的网站。明白为什么人们会生气吗?
你的怒火只适用于制作小型示例网站的人。真正的生产工作并不总是有足够的时间去逐行调试代码,因为其他人可能会进行更改。
也许如果 jQuery 使用语义化版本控制,人们就不会抱怨他们的网站在从 1.7 升级到 1.8 后崩溃。在语义化版本控制中,如果对公共 API 引入了任何向后不兼容的更改,则必须增加主版本号(x.y.z 中的 x)。只是一些想法。请参阅:http://semver.org/
我似乎无法让对话框弹出。如果我使用 jquery 1.6.l3 和 jquery ui 1.8.23 的组合,它可以正常工作。但如果我使用 jquery 1.8.0 和 jquery ui 1.8.23,它就不起作用。
主屏幕变灰了,但对话框窗口没有出现。
求助!
这是一个很棒的 jQuery 库。非常感谢!我在我的所有网站上都使用它 :)