jQuery 1.2 发布
下载
jQuery 1.2
jQuery 最小化版 (14kb,使用 gzip 压缩)
jQuery 压缩版 (26kb)
jQuery 常规版 (77kb)
新特性
部分 .load()
部分 .load() 允许您将 HTML 文档的片段加载到页面中,并通过 jQuery 选择器进行过滤。这与普通的 Ajax .load() 一样,只是您在检索的 URL 后面立即指定一个选择器。
跨域 $.getScript
您现在可以使用 getScript 动态加载和执行远程脚本。这可以用来加载 jQuery 插件或其他代码模块。
跨域 $.getJSON (使用 JSONP)
JSONP 是一种技术,允许您在多个域之间传输 JSON 数据。
jQuery 现在原生支持 JSONP - 如果您尝试从远程 URL 加载 JSON(通过 $.getJSON 或 $.ajax),那么将提供一个额外的回调函数供服务器解释。此外,如果服务器需要一个特殊字段来指定您自己的回调函数名称,则可以通过在您的查询字符串中添加 “=?” 来提供它。
序列化大修
.serialize() 方法已经过大幅度的修改,将 jQuery Forms 插件 提供的功能移植回 jQuery 核心。这意味着表单数据的序列化现在应该与浏览器通常发送到服务器的数据非常接近。
此外,还引入了新的 .serializeArray() 方法,该方法序列化所有表单和表单元素(如 .serialize() 方法),但返回一个 JSON 数据结构供您使用。这在处理大型表单时特别有用,您希望对这些表单进行处理。
禁用缓存
在 $.ajax 调用中,您现在可以通过提供一个额外的 cache: false
标志来阻止浏览器缓存请求。这将确保您可能执行的任何 GET 请求都绝对会检索页面的最新版本。
cache: false
始终向服务器发送新请求。
« 返回完整的 [[Release:jQuery 1.2|jQuery 1.2 发布说明]]。
.val() 大修
简单的 .val() 方法得到了急需的改进,使其更加有用。您现在可以设置一组单选按钮和复选框的选中状态,以及设置下拉选项的选中状态。您可以通过传递要选择/选中项的值或名称数组来实现这一点。(在 Firefox2 中失败,单选按钮在 IE7 中失败)现在可以调用 .val() 方法来获取下拉元素的值。
.offset()
从 [https://jqueryjs.cn/plugins/project/dimensions 尺寸插件] 中移植过来,[[CSS/offset|.offset()]] 方法允许您查找元素相对于文档左上角的偏移量(作为 ‘top’ 和 ‘left’)。
.height() / .width() 用于文档和窗口
.height() 和 .width() 现在适用于文档和窗口对象;允许获取文档主体和窗口视窗的高度和宽度。
.stop()
停止所有指定元素上当前正在运行的所有动画。如果任何动画排队要运行,那么它们将立即开始。
%/em 动画
动画现在可以使用 em 值或百分比以及像素值来执行。它们甚至可以在同一个 animate() 调用中混合使用。
颜色动画
一个新的 [https://jqueryjs.cn/plugins/project/color 官方 jQuery 插件],通过使用新的 jQuery.fx.step 支持对元素的 CSS 颜色进行动画处理。
支持的 CSS 属性:‘backgroundColor’;‘borderBottomColor’;‘borderLeftColor’;‘borderRightColor’;‘borderTopColor’;‘color’;‘outlineColor’。
颜色可以指定为预设范围内的一个命名颜色;以 rgb 格式(例如 ‘rgb(221,221,221)’);十六进制(例如 ‘#dddddd’);或简写十六进制(例如 ‘#ddd’)。
相对动画
相对动画的行为与普通动画相同,但它们的单位被指定为相对于元素当前位置的相对位置,而不是绝对位置。
您可以通过将数字和(可选)单位作为字符串写出来,并在前面加上 “+=”(用于将当前位置相加的相对动画)或 “-=”(用于从当前位置减去的相对动画)来指定相对动画。
同时动画
与以往一样,jQuery 中的动画会自动排队,这允许您将 animate() 调用链接起来。
现在,如果在 animate() 的选项中包含一个 queue: false
标志,那么该动画就不会进入队列,并将立即开始运行。
.queue() / .dequeue()
两个现有的内部 jQuery 排队方法已被调整,并变得更加有用,适用于一般的动画用途。
.queue() 可以用来访问和操作特定元素的动画队列。
添加了以下排队方法
* .queue()
返回对第一个元素队列的引用(这是一个函数数组)。
* .queue(Function)
在所有匹配元素的队列末尾添加一个新函数,以供执行。
* .queue(Array
将所有匹配元素的队列替换为这个新的队列(函数数组)。
并添加了以下出队方法:.dequeue() 从队列的开头删除一个排队的函数并执行它。
可扩展的动画
您现在可以使用一个函数扩展 jQuery 动画,该函数在动画的每个步骤中被触发,并更改正在进行动画的元素的样式。它可以扩展到特定的 css 属性,甚至可以用来创建一个自定义动画类型。
例如,您可以在 .animate() 中传递一个额外的步骤函数来执行诸如动画同步之类的操作。
命名空间事件
这是一个对插件作者特别有用的功能。您现在可以为绑定的事件处理程序提供一个私有名称,允许您稍后再次删除它们(无需维护您正在管理的所有处理程序的私有缓存)。
.triggerHandler()
一个新方法,可以与原始的 .trigger() 一起使用。该方法触发元素上绑定到特定事件类型的所有事件处理程序,**不**执行浏览器的默认操作。
.wrapInner() / .wrapAll()
.wrapInner() 用于包装每个匹配元素(包括文本节点)的内部子内容;.wrapAll() 将匹配集合中的所有元素包装到一个包装元素中(这与 .wrap() 不同,在 .wrap() 中,匹配集合中的每个元素都会被一个元素包装)。
.replaceWith() / .replaceAll()
replaceWith 用指定的 HTML 或 DOM 元素替换所有匹配的元素。.replaceAll 用匹配的元素替换由指定选择器匹配的元素。
带有事件的克隆
.clone() 方法现在可以接受一个可选参数,如果为 true,它还将克隆所有克隆元素上的所有事件处理程序。
:has(selector)
这匹配所有包含至少一个与指定选择器匹配的元素的元素。这是 XPath 选择器
:header
这匹配所有标题(h1、h2、h3、h4、h5 和 h6 标签)。这在构建页面的目录时非常有用(尤其是在标题顺序很重要的情况下)。
:animated
匹配当前正在进行至少一个动画的元素。
XPath 选择器插件
由于 XPath 选择器在 jQuery 1.2 中被移除,因此引入了新的 [https://jqueryjs.cn/plugins/project/xpath XPath 选择器插件]。您可以使用这个插件来获得自 jQuery 创建以来就存在的 CSS/XPath 混合选择器。
.map()
将一组元素转换为另一组值(可能是,也可能不是元素)。您可以使用它来构建值列表、属性、css 值 - 甚至执行特殊、自定义的选择器转换。这是一个用于使用 $.map() 的便利方法。
.prevAll() / .nextAll()
允许您查找当前元素之前或之后的所有兄弟元素。
.slice()
此方法的行为与数组的原生 .slice() 方法相同,允许您将 jQuery 集合切成可重复使用的部分。
.hasClass()
新的 .hasClass() 方法是一个简单的便利方法,它位于 [[Traversing/is|.is()]] 之上,处理其最常见的用例(检查类名)。
.andSelf()
将 jQuery 堆栈上的前两个集合合并成一个匹配的集合。
.contents()
查找匹配元素内部的所有子节点(包括文本节点)。如果您对 iframe 元素执行它,它会返回它的内部文档。
如何升级
如果您还没有这样做,请升级到 jQuery 1.1.4。这将有助于消除您使用的 jQuery 的最后一个版本和当前版本之间的大部分意外情况。查看已弃用和已删除的功能列表,并确保您在代码中没有使用任何这些功能。如果您使用的任何插件仍然需要一些旧的功能,您可以随意包含 jQuery 1.1 兼容性插件或 XPath 兼容性插件,具体取决于情况。
jQuery 1.1 兼容性插件
jQuery 1.2 版本中删除了一些功能。包含此插件可以让您在 jQuery 1.2 的副本中拥有所有已删除的功能。
该插件通常的使用方法如下
XPath 兼容性插件
由于 XPath 选择器在 jQuery 1.2 中被移除,因此引入了新的 XPath 选择器插件。您可以使用这个插件来获得自 jQuery 创建以来就存在的 CSS/XPath 混合选择器。
颜色动画插件
一个新的、官方的 jQuery 插件,它使用新的 jQuery 动画 API 支持对元素的 CSS 颜色进行动画处理。支持的 CSS 属性包括:'backgroundColor'、'borderBottomColor'、'borderLeftColor'、'borderRightColor'、'borderTopColor'、'color'、'outlineColor'。
移除的功能
我们已移除 jQuery 1.2 中的一些相对未使用、造成混淆或效率低下的方法。在可能的情况下,我们提供了执行这些操作的替代方法。
在 jQuery 1.2 中,与 jQuery 1.1 版本一样,提供了一个向后兼容插件。因此,如果您希望继续使用这些特定方法,则可以使用该插件并继续这样做。
此外,为了处理 XPath 更改,另一个独立插件已经可用,该插件将处理 jQuery 中的 XPath 选择器功能。
DOM 操作
调用带参数的 clone 方法即将弃用(clone 方法本身将保留)。不要调用.clone(false)现在应该执行.clone().empty()代替。
DOM 遍历
.eq() 方法即将弃用,改为使用新的 .slice() 方法(与数组的 slice 方法完全相同)。您可以像这样复制 .eq()
$("div").slice(0,1);
.lt() 方法即将弃用,改为使用新的 .slice() 方法(与数组的 slice 方法完全相同)。
.gt() 方法即将弃用,改为使用新的 .slice() 方法(与数组的 slice 方法完全相同)。
.contains() 方法即将弃用,改为仅使用常规的 .filter() 语句。您可以像这样复制 .contains()
$("div").filter(":contains(Your Text)");
Ajax
$("#elem").loadIfModified("some.php"):此便捷方法将被移除,改为使用 $.ajax() 的长格式。
$.ajax({ url: "some.php", ifModified: true, success: function(html){ $("#elem").html(html); } });
$.getIfModified("some.php"):此便捷方法将被移除,改为使用 $.ajax() 的长格式。
$.ajax({ url: "some.php", ifModified: true });
$.ajaxTimeout(3000):此便捷方法将被移除,改为使用更明确的 $.ajaxSetup() 的长格式。
$.ajaxSetup({timeout: 3000});
$(...).evalScripts():此方法在 jQuery 中不再需要 - 所有包含在 HTML 字符串中的脚本在注入文档时都会自动执行。不需要替代方法。