jQuery 1.2 发布
下载
jQuery 1.2
jQuery 最小化版 (使用 gzipping 压缩后为 14kb)
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 中单选按钮失败)现在可以对 select 元素调用 .val(),以获取其值。
.offset()
从 [https://jqueryjs.cn/plugins/project/dimensions 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 属性扩展,甚至可以创建自定义动画类型。
例如,你可以将一个额外的 step 函数传递给 .animate() 来执行诸如动画同步之类的操作。
命名空间事件
这是一个对插件作者特别有用的功能。现在你可以为事件处理程序提供一个私有名称,以便稍后可以删除它们(而无需维护你监督的所有处理程序的私有缓存)。
.triggerHandler()
一种可以与原始的 .trigger() 一起使用的新方法。这种特定方法触发元素上绑定的所有事件处理程序(针对特定事件类型),而无需执行浏览器默认操作。
.wrapInner() / .wrapAll()
.wrapInner() 旨在包装每个匹配元素的内部子内容(包括文本节点);.wrapAll() 将匹配集合中的所有元素包装成一个单独的包装元素(这与 .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 Selector Plugin]。 您可以使用此插件为自己提供自 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 Selector Plugin。 您可以使用此插件为自己提供自 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 字符串中的脚本都会自动评估。 不需要替代方法。