宝哥软件园

jQuery 3.0的变化和使用

编辑:宝哥软件园 来源:互联网 时间:2021-09-17

JQuery,世界上最流行的JavaScript库,一直是我们Web开发人员的神器。自从它的初始版本在2006年发布以来,许多网络开发人员已经将这个优秀的库引入到项目中,以使开发工作更加容易。

3个月后,jQuery团队终于发布了3.0 Alpha版本。jQuery compat 3.0和jQuery 3.0有两个版本。

jQuery compat 3.0对应之前的1.x,兼容更多浏览器。对于IE,支持到8.0版本。jQuery 3.0对应之前的2.x,关注更新后的浏览器。对于IE,支持到9.0版本。

此外,3.0还增加了对来自俄罗斯的浏览器Yandex浏览器的支持。

1.显示/隐藏被简化。

以前的显示/隐藏是兼容的,例如显示,无论元素的显示是用样式还是样式表编写的,都可以显示。3.0不一样。调用show后,样式表中写入的display:none仍然隐藏。在3.0中,建议在类模式下显示和隐藏,或者完全隐藏(没有css代码),然后调用show。

styleinput { display: none}/style input id=' txt ' type=' text ' value=' '/script $(' # txt ')。show();//仍然是隐藏状态/script2,data方法兼容data-name-11写入。

输入id=' txt ' type=' text ' value=' data-name-11=' aa '/script//3.0版输出{'name-11': aa},上一版输出{}$('#txt ')。data()/script。这个问题的本质是$。

//3.0输出' name-11 ',3.0之前的版本输出' name 11' $。camel大小写(' data-name-11 ')。3.derferred与promise/a兼容。

3.0终于可以自信地宣布支持之前被诟病阉割的Promise/A了。

4.成功|错误|完成方法已从$中删除。ajax对象。

这是因为Promise/A规范的推广,人们越来越多地使用Promise,不需要之前的几种Derferred对应的方法。

derferred . done-jqxhr . success derferred . fail-jqxhr . error derrerred . always-jqxhr.complete

//下列方法没有$。Ajax()。成功$。Ajax()。错误$。Ajax()。COMPLETE 5,宽度/高度,css(宽度)/css(高度)的返回值始终为十进制。

以前,有些浏览器在特殊情况下会返回浮点数。

6.注册事件的快捷函数加载|卸载|错误已被删除。

名称加载与ajax加载同名,这是不明确的。卸载如果卸载,卸载没有任何意义。window.onerror注册了错误,它不是标准的事件处理程序,因此也建议将其删除。

以上内容总结了jquery3.0的变化,下面主要介绍jquery3.0的更新内容和用法。

展示和隐藏。

主要的变化是函数将如何工作。这样做是有充分理由的。在早期的实现中,hide()函数将css属性设置为“display:none”,show()函数清除该属性。但这有点令人困惑。让我们看几个例子:

1.如果show()函数试图将一个节点设置为“display:block”,并在另一个样式表中实现“display:inline”属性,它将开始销毁代码。

2.当我们为媒体处理RWD时,我们可能会使用“显示”或“可见性”来更改节点的可见性。这可能会影响“显示()”和“隐藏()”功能。

除了这些,JQuery团队还有许多其他问题需要解决。这导致了复杂的实现和性能问题,所以他们迁移到一个简单的模型。

以后如果设置“display:none”,用“show()”、“slideDown()”、“fadeIn()”或者类似的方法显示节点,就不会有效了。更好的方法是使用“addClass()”和“removeClass()”来控制显示。或者可以在调用“ready()”时对元素调用“hide()”。

举个简单的例子:

!DOCTYPE HTMlHTMlHeadstyle . invisible { display : none;}.可见{ background-color : deep sky blue;显示:块;}/style script src=' http : jquery-3 . 0 . 0-alpha 1 . js '/script script $(文档)。ready(function(){$('#div1 '))。addClass('不可见');$('#toggle ')。click(function(){$('#div1 '))。removeClass('可见');$('#div1 ')。addClass('不可见');});});/script title control Visibility/title/headsdyphello!/pdiv id='div1 '你能看到这个吗?/divbutton id='toggle '单击我/按钮/正文/html

的命名规则。数据()键。

jQuery团队更改了。data()函数,以更好地符合HTML5数据集规范。如果data-*属性中的键包含一个数字,该数字将不再参与转换。考虑以下示例:

使用jQuery 2.1.4:

控制台不显示对象。

使用jQuery 3.0.0:

由于现在转换成骆驼拼写时不涉及数字,因此key已经转换成foo-42-name。因此,我们从控制台获得输出。这个小提琴的网址是http://jsfiddle.net/nWCKt/25/.你可以改变jQuery的版本来观察变化。

同样,如果我们想使用data()显示所有没有任何参数的数据,如果data-*属性的键名后面跟一个连字符(-)后面的数字,那么参数的数量在两个jQuery版本中也会发生变化,就像上面的例子一样。

width()和height()函数返回十进制值。

一些浏览器返回宽度和高度作为子像素值。现在,jQuery的。width(),高度(),无论浏览器是否支持,css('width ')都可以返回十进制值。对于想要设计亚像素精度网页的用户来说,这可能是个好消息。

那个。load(),卸载(),然后。错误()函数已被删除。

这些方法早先被弃用,但现在它们已经从jQuery 3.0.0 alpha版本中删除了。推荐的方法是使用。函数来处理这些事件。简短示例:

HTML:

img src=' http : Space-pine . png ' alt=' Space pine ' id=' spacen ' JavaScript:

的早期实现(现在不可用)。

$('#spacen ')。load(function() {//Handler实现});建议执行:

$('#spacen ')。on('load ',function() {//Handler实现});jQuery对象现在是可遍历的。

现在,您可以遍历jQuery对象,并使用ES2015的for-of。所以你可以这样使用它:

for(属于$('div id=spacen ')的节点){ console . log(node . id);//返回' spacen'} jquery动画现在在后端使用requestAnimationFrame API。

所有现代浏览器都已经支持requestAnimationFrame(参见http://cani use.com/# search=requestAnimationFrame)。因为它被广泛支持,jQuery将使用这个API来执行动画。它的优点包括动画更流畅,CPU使用更少(因此,它可以节省手机的电量)。

增强。unwrap()函数。

那个。unwrap()函数允许您删除DOM中指定元素的父元素,该元素不能较早接收参数。如果有人想为打开设置一个条件,这可能是一个问题。

在jQuery 3.0.0 alpha中。unwrap()可以把jQuery选择器作为参数来处理这个问题。

升级jQuery。遵从承诺/A兼容性。

Promiseis是异步操作的最终结果。它是一个对象,并承诺在未来交付结果。promise接口是then方法,它注册了一个回调函数。如今,在JavaScript中使用Promise来做异步工作变得越来越流行。Promises/A是一个与JavaScript promises兼容的开放标准。(更多信息,请查看链接: https://promisesaplus.com/)

从jQuery的参考文档来看,延迟对象是由jQuery创建的可链接实用程序对象。延迟()方法。它可以注册多个回调函数并将其放入回调函数队列,调度这个队列,并更新任何同步或异步方法的成功和失败状态。在jquery 3.0.0中,jquery。延迟对象已升级为与承诺/A和S2015承诺兼容。这是的主要变化。然后()方法。

更好地处理错误情况。

这个版本的jQuery可以更好的处理错误——。错误请求在过去被忽略了,直到当前版本才会抛出错误。

比如考虑偏移量,为了得到当前第一个元素的坐标,需要将集合中的元素相对于文档进行匹配。如果您试图在早期版本的jQuery中找到偏移窗口,您将获得类似{top: 0,left: 0}的结果,而不是抛出错误,因为偏移窗口没有意义。在3.0 alpha版本中,它会抛出一个错误。

另一个例子:$(“#”)现在抛出一个错误,而不是返回一个长度为0的集合。

加速了用户定义的选择器,如:visible。

当诸如:visible这样的选择器在一个文档中被多次使用时,性能会大大提高。其内部由缓存实现。在——第一次使用这个选择器之后,它在将来会返回相同的结果。但是,每次后续调用都会快速返回结果,因为缓存可以工作。来自jQuery的Timmy Willison在报告中指出,使用缓存后,visible Selector的性能提升了17倍。

这些是一些主要的更新。完整名单在他们的官方博客:http://blog . jquery.com/2015/07/13/jquery-3-0-and-jquery-compat-3-0-alpha-versions-released/。

最新版本在哪里下载?

有两个版本:

JQuery 3.0,支持现代浏览器:https://code.jquery.com/jquery-3.0.0-alpha1.js.

JQuery Compat 3.0,包括对IE8的支持:https://code.jquery.com/jquery-compat-3.0.0-alpha1.js.

也可以从国家预防机制获得:

npm安装[emailprotected]npm安装[emailprotected]

更多资讯
游戏推荐
更多+