中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

jQuery 3 中的新增功能匯總介紹
來(lái)源:易賢網(wǎng) 閱讀:1877 次 日期:2016-06-20 14:10:26
溫馨提示:易賢網(wǎng)小編為您整理了“jQuery 3 中的新增功能匯總介紹”,方便廣大網(wǎng)友查閱!

本文帶你了解了一遍 jQuery 3 將會(huì)帶來(lái)的一些重大變化。或許你已經(jīng)注意到了,這個(gè)版本是可能對(duì)你現(xiàn)有的項(xiàng)目產(chǎn)生太大的影響,因?yàn)闆](méi)有引入太多許多重大更改。

從jQuery 震撼整個(gè) Web ,至今已有十年了,我們有很好的理由一直堅(jiān)持使用維護(hù)它。jQuery為用戶提供了 DOM 進(jìn)行操作,執(zhí)行 Ajax 請(qǐng)求,創(chuàng)建動(dòng)畫(huà)等等,極為友好的接口。此外,與 DOM API 不同的是,jQuery 采用了 復(fù)合模式(composite pattern)。 正因?yàn)槿绱耍憧梢栽谝粋€(gè)jQuery集合上調(diào)用jQuery方法,而不用擔(dān)心集合包含的元素?cái)?shù)量(零,一個(gè)或多個(gè))。

在未來(lái)的幾周內(nèi),隨著 jQuery 3 的發(fā)布,jQuery 會(huì)到達(dá)一個(gè)重要的里程碑。jQuery 3 修復(fù)了很多 bug,增加了新的方法,棄用并移除了一些功能,并改變了一些功能的行為。在這篇文章中,我重點(diǎn)講解jQuery 3所帶來(lái)的一些最大的變化。

新特性(New Features)

在下面的章節(jié)中,我將討論jQuery 3中新增的重要特性。

for…of 循環(huán)

jQuery 3 將提供for...of循環(huán)語(yǔ)句,可以用來(lái)遍歷一個(gè)jQuery集合所有的 DOM 元素。這種新的迭代器ECMAScript 2015(又名的ECMAScript6)規(guī)范的一部分。它能實(shí)現(xiàn)對(duì)可遍歷對(duì)象(包括 Array、Map、Set 等)的循環(huán)。

當(dāng)使用這個(gè)新的迭代方法時(shí),您每次接收的值不是一個(gè)jQuery集合,而是一個(gè)DOM元素。當(dāng)你對(duì)一個(gè)jQuery集合執(zhí)行操作時(shí),這個(gè)新的迭代方法可以少許改善你的代碼。

為了理解這個(gè)迭代方法是如何工作的,假設(shè)你想給頁(yè)面中每個(gè)input元素分配一個(gè) ID。在 jQuery 3 之前,你可以這樣寫(xiě):

var $inputs = $('input');

for(var i = 0; i < $inputs.length; i++) {

  $inputs[i].id = 'input-' + i;

}

而在 jQuery 3 中,你可以這樣寫(xiě):

var $inputs = $('input');

var i = 0; 

for(var input of $inputs) {

  input.id = 'input-' + i++;

}

$.get() 和 $.post()的新簽名

jQuery 3 為 $.get() 和 $.post() 工具函數(shù)增加了新簽名,為的是使得它們和 $.ajax() 的接口風(fēng)格保持一致。新簽名是這樣的:

$.get([settings])

$.post([settings])

settings 是一個(gè)可以具有許多屬性的對(duì)象。這是對(duì)象和 提供給$.ajax() 的對(duì)象 是相同的。更多詳細(xì)的介紹,詳細(xì)介紹,請(qǐng)參考 $.ajax()頁(yè)面。

傳遞給$.get() 和 $.post() 的對(duì)象,跟傳遞給 $.ajax() 的對(duì)象相比,唯一的區(qū)別是前者 method 屬性總是會(huì)被忽略。其原因是,$.get() 和 $.post() 都有一個(gè)預(yù)設(shè)的HTTP方法來(lái)執(zhí)行Ajax請(qǐng)求( $.get() 用 GET,而 $.post() 用 POST)。一般說(shuō)來(lái),你不要用 $.get()嘗試發(fā)送 POST 請(qǐng)求。

考慮下面這段代碼:

$.get({

  url: 'https://www.audero.it',

  method: 'POST' // This property is ignored

});

盡管設(shè)置了method屬性,該語(yǔ)句還是不能發(fā)送 POST 請(qǐng)求,而只能發(fā)送 GET 請(qǐng)求。

采用 requestAnimationFrame() 來(lái)實(shí)現(xiàn)動(dòng)畫(huà)

所有現(xiàn)代瀏覽器,包括Internet Explorer10及以上版本,都支持 requestAnimationFrame。jQuery 3 將會(huì)在內(nèi)部采用這個(gè) API 來(lái)實(shí)現(xiàn)動(dòng)畫(huà),以便達(dá)到更流暢、更省CPU資源的動(dòng)畫(huà)效果。

unwrap()

jQuery 3 為 unwrap() 方法增加了一個(gè)可選的選擇器參數(shù)。這個(gè)方法的新簽名為:

unwrap([selector])

有了這一變化,你就可以傳入包含一個(gè)選擇器表達(dá)式的字符串,在父元素內(nèi)進(jìn)行匹配。如果存在匹配,匹配的子元素將被解包;否則,不進(jìn)行任何操作。

被變更的特性

jQuery 3 還修改了一些特性的行為。

:visible 和 :hidden

jQuery 3修改了 :visible 與 :hidden 過(guò)濾器的含義。只要元素具有任何布局盒,包括那些寬度和/或高度為0的情況,則元素被認(rèn)為是:visible。比如說(shuō),br 元素和沒(méi)有內(nèi)容的內(nèi)聯(lián)元素進(jìn)可以通過(guò) :visible 過(guò)濾器進(jìn)行選擇。

所以,假如頁(yè)面有如下標(biāo)記:

<div></div>

<br />

然后執(zhí)行下面的語(yǔ)句:

console.log($('body :visible').length);

在 jQuery 1.x 和 2.x 中,你得到的結(jié)果會(huì)是 0;但在 jQuery 3 中,你會(huì)得到 2。

data()

另一個(gè)重要變化是跟 data() 方法的行為有關(guān)。調(diào)整主要是為了讓該方法符合 Dataset API 規(guī)范。jQuery 3 將所有屬性的鍵都改為駝峰式大小寫(xiě)形式。要理解這個(gè)變化,先看下面這個(gè)例子。

<div id="container"></div>

如果你使用 jQuery 3 之前的版本,你可以寫(xiě)如下代碼:

var $elem = $('#container');

$elem.data({

  'my-property': 'hello'

});

console.log($elem.data());

您將在控制臺(tái)上獲得如下結(jié)果:

{my-property: "hello"}

而在jQuery 3 中,你會(huì)獲得如下結(jié)果:

{myProperty: "hello"}

請(qǐng)注意,在 jQuery 3 中,屬性名已經(jīng)變成了駝峰形式,沒(méi)有橫杠(連字符);而在以前的版本中,屬性名會(huì)保持全小寫(xiě),并原樣保留橫杠(連字符)。

Deferred 對(duì)象

jQuery 3改變了Deferred 對(duì)象的行為,Promise 對(duì)象的前身,改善與 Promise/A+ 提案的兼容性。這個(gè)對(duì)象及其歷史非常有意思,你可以讀讀官方文檔,或者看看我的書(shū) 《jQuery 實(shí)戰(zhàn),第 3 版》,這本書(shū)也涵蓋了 jQuery 3。

在 jQuery 1.x 和 2.x 中,傳入 Deferred 中的回調(diào)函數(shù)中如果出現(xiàn)未捕獲異常,會(huì)導(dǎo)致程序停止執(zhí)行。而原生的 Promise 對(duì)象并非如此,它會(huì)拋出異常,并不斷向上冒泡,直至到達(dá) window.onerror(通常)。如果你沒(méi)有定義一個(gè)函數(shù)來(lái)處理這個(gè)錯(cuò)誤事件的話(通常我們都不會(huì)這么做),則會(huì)顯示異常消息,程序終止執(zhí)行。

jQuery 3 會(huì)遵循原生的 Promise 對(duì)象的模式。因此,拋出的異常將被視為一個(gè)失敗狀態(tài)(rejection),從而執(zhí)行失敗回調(diào)。完成之后,整個(gè)進(jìn)程就繼續(xù)執(zhí)行,后續(xù)的成功回調(diào)將被執(zhí)行。

為了讓你更好地理解這個(gè)差異,讓我們來(lái)看一個(gè)小例子。考慮下面的代碼:

var deferred = $.Deferred();

deferred

 .then(function() {

  throw new Error('An error');

 })

 .then(

  function() {

   console.log('Success 1');

  },

  function() {

   console.log('Failure 1');

  }

 )

 .then(

  function() {

   console.log('Success 2');

  },

  function() {

   console.log('Failure 2');

  }

 );

deferred.resolve();

在 jQuery 1.x 和 2.x 中,只執(zhí)行第一個(gè)函數(shù)(拋出錯(cuò)誤的函數(shù))會(huì)被執(zhí)行到。此外,由于我們沒(méi)有為 window.onerror 定義任何事件處理函數(shù),所以控制臺(tái)將輸出消息:“Uncaught Error: An error”,而且程序的執(zhí)行將中止。

而在 jQuery 3 中,行為則完全不同的。你將在控制臺(tái)中看到 “Failure 1” 和 “Success 2” 兩條消息。異常將會(huì)被第一個(gè)失敗回調(diào)處理,一旦被處理,則繼續(xù)執(zhí)行下面的成功函數(shù)。

SVG 文檔

沒(méi)有哪一個(gè) jQuery 版本,包括 jQuery 3,正式支持 SVG 文檔。不過(guò)事實(shí)上有很多方法是可以正常工作的,另外一些方法,比如操作類名的方法,已經(jīng)在 jQuery 3 中進(jìn)行了更新,因此也適用。因此,在未來(lái)的版本中,你應(yīng)該可以放心使用諸如 addClass() 和 hasClass() 這樣的方法來(lái)操作 SVG 文檔了。

已廢棄、已移除的方法和屬性

除了前面說(shuō)的改進(jìn),jQuery 也移除、廢棄了一些特性。

廢棄bind(),unbind(),delegate()和undelegate()

jQuery 以前引入的 on() 方法提供了統(tǒng)一的訪問(wèn)接口,取代  bind()、delegate() 以及 live() 方法。與此同時(shí),jQuery 用 off() 方法來(lái)取代 unbind()、undelegated() 及 die() 方法。bind()、delegate()、unbind() 和 undelegate() 今后不建議使用,但是并沒(méi)有采取進(jìn)一步的行動(dòng)。

jQuery 3 已經(jīng)廢棄這些方法,并計(jì)劃在未來(lái)的版本(可能是 jQuery 4)中移除它們,要堅(jiān)持在項(xiàng)目中使用 on() 和 off() 方法,這樣你就不用擔(dān)心未來(lái)版本的變更了。

移除 load(), unload() 和 error()方法

jQuery 3 徹底拋棄了已經(jīng)廢棄的 load()、unload() 和 error() 方法。這些方法在很早以前(從 jQuery 1.8 開(kāi)始)就已經(jīng)被標(biāo)記為廢棄了,但仍一直存在。如果你正在使用的插件仍然依賴這些方法,那么升級(jí)到 jQuery 3 的時(shí)候,代碼就會(huì)出錯(cuò)。因此,在升級(jí)過(guò)程中要注意。

移除 context, support 和 selector

jQuery 3 徹底拋棄了已經(jīng)廢棄的 context、support 和 selector 屬性。如前所述,如果項(xiàng)目中仍然使用著這些屬性,或者某個(gè)插件仍在依賴這些屬性,那么更新到 jQuery 3 時(shí),代碼就會(huì)出錯(cuò)。

Bugs 修復(fù)

jQuery 3 修復(fù)了以前版本中的一些重大 Bug。在下面的章節(jié)中,我將著重介紹其中兩處,因?yàn)檫@兩處會(huì)對(duì)你的編碼產(chǎn)生重大影響

width() 和 height()的返回值不再四舍五入

jQuery 3 修復(fù)了 width()、height() 和其它相關(guān)方法中的一個(gè) bug。這些方法的返回值將不再四舍五入取整到像素了,因?yàn)椋@使得在某些情況下很難,對(duì)元素進(jìn)行定位。

要理解這個(gè)問(wèn)題,讓我們假設(shè)你有一個(gè)具有100像素的寬度的容器元素,這個(gè)元素有寬度均為三分之一(即 33.333333%)的3個(gè)子元素:

<div class="container">

  <div>My name</div>

  <div>is</div>

  <div>Aurelio De Rosa</div>

</div>

在 jQuery 3 以前的版本中,如果你嘗試通過(guò)以下代碼來(lái)獲取子元素的寬度……

$('.container div').width();

……那么你得到結(jié)果將是 33。原因在于 jQuery 會(huì)將 33.33333 這個(gè)值四舍五入取整。而在 jQuery 3 中,這個(gè) Bug 已經(jīng)得到修復(fù),你的結(jié)果會(huì)更精確(比如會(huì)得到浮點(diǎn)數(shù))。

wrapAll()

jQuery的新版本中還修復(fù) wrapAll() 方法的一個(gè)bug,這個(gè)bug會(huì)在傳遞一個(gè)函數(shù)給 wrapAll() 方法時(shí)發(fā)生。在 jQuery 3 以前的版本中,當(dāng)一個(gè)函數(shù)被傳給 wrapAll() 方法時(shí),它會(huì)把 jQuery 集合中的每個(gè)元素單獨(dú)包裹起來(lái)。換句話說(shuō),這種行為和把一個(gè)函數(shù)傳給 wrap() 時(shí)的行為是完全一樣的。

除了修復(fù)這個(gè)問(wèn)題,因?yàn)檫@種函數(shù)在 jQuery 3 中只會(huì)被調(diào)用一次,所以jQuery 集合元素的索引不可能被傳入。最后,該函數(shù)上下文(this)將指向 jQuery 集合中的第一個(gè)元素。

下載 jQuery 3

您可以從jQuery CDN獲取文件,或者直接訪問(wèn)鏈接:

https://code.jquery.com/jquery-3.0.0.js

https://code.jquery.com/jquery-3.0.0.min.js

您也可以從以下npm獲得更新:

npm install jquery@3.0.0

總結(jié)

很多人在說(shuō)jQuery 已死,認(rèn)為在現(xiàn)代網(wǎng)頁(yè)開(kāi)發(fā)中已經(jīng)沒(méi)有一席之地了。然而,jQuery 的開(kāi)發(fā)仍在繼續(xù),客觀的統(tǒng)計(jì)數(shù)據(jù)(在排名前一百萬(wàn)名的網(wǎng)站中占有率高達(dá) 78.5%)駁斥這些說(shuō)法。

在本文中,我已經(jīng)帶你了解了一遍 jQuery 3 將會(huì)帶來(lái)的一些重大變化。或許你已經(jīng)注意到了,這個(gè)版本是可能對(duì)你現(xiàn)有的項(xiàng)目產(chǎn)生太大的影響,因?yàn)闆](méi)有引入太多許多重大更改。盡管如此,仍然需要注意一些因素,比如 Deferred 對(duì)象的改進(jìn)。就像更新第三方依賴所經(jīng)常要面的那樣,對(duì)項(xiàng)目一定要做一個(gè)復(fù)查,從而防止意外行為或功能崩潰的情況出現(xiàn)。

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:jQuery 3 中的新增功能匯總介紹
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢?yōu)闇?zhǔn)!

2026上岸·考公考編培訓(xùn)報(bào)班

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲乱码一区二区| 国产精品手机视频| 国产乱码精品1区2区3区| 亚洲欧美成人网| 国产亚洲精品一区二555| 久久精品综合网| 在线观看精品| 欧美激情a∨在线视频播放| 亚洲毛片av在线| 国产精品久久久久影院亚瑟| 欧美怡红院视频| 亚洲国产精品va在线观看黑人| 欧美日韩国产美| 欧美在线亚洲综合一区| 最新国产の精品合集bt伙计| 国产精品久久久免费| 久久天堂精品| 在线亚洲美日韩| 精品成人国产| 国产精品第三页| 欧美jizz19性欧美| 亚洲欧美日韩在线高清直播| 在线日韩av| 国产精品视频专区| 欧美福利电影网| 欧美在线视频免费观看| 日韩一二三在线视频播| 国产一区二区欧美| 欧美日韩一二三四五区| 久久婷婷麻豆| 亚洲一级电影| 亚洲日本理论电影| 国产日韩视频一区二区三区| 欧美激情亚洲精品| 久久国产一区| 一区二区三区四区五区视频 | 欧美成人第一页| 亚洲男人的天堂在线aⅴ视频| 亚洲国产精品va在线观看黑人| 国产精品乱码| 欧美精品在线免费| 久热精品视频在线免费观看| 午夜视频一区二区| 一区二区欧美在线观看| 亚洲成在线观看| 国产一区二区三区观看| 欧美性开放视频| 欧美国产日韩精品| 久久一区视频| 久久久久久久一区二区| 亚洲欧美日韩另类| 一区二区三区视频免费在线观看| 亚洲国产成人久久| 一区二区亚洲精品| 国产亚洲欧美一区二区| 国产精品每日更新在线播放网址| 欧美日韩精品国产| 欧美精品福利在线| 欧美激情1区2区| 欧美激情二区三区| 欧美大胆成人| 免费亚洲一区二区| 蜜桃伊人久久| 欧美3dxxxxhd| 老司机一区二区| 久久免费视频在线| 久久久久久69| 久久色在线观看| 久久亚洲不卡| 卡通动漫国产精品| 麻豆久久久9性大片| 久久精品一区二区三区中文字幕| 欧美一区二区黄色| 欧美一区二区黄| 久久精品国产久精国产一老狼| 欧美在线三级| 久久久www成人免费无遮挡大片| 久久精品电影| 美女视频黄 久久| 欧美国产在线电影| 欧美乱大交xxxxx| 欧美日韩不卡一区| 国产精品白丝av嫩草影院| 国产精品免费小视频| 国产手机视频精品| 一区在线视频| 亚洲人成在线播放网站岛国| 日韩网站在线看片你懂的| 一本一本a久久| 午夜在线视频一区二区区别 | 亚洲精品在线视频| 99综合视频| 亚洲免费在线电影| 午夜精品一区二区三区电影天堂 | 激情五月***国产精品| 国产一区二区三区av电影| 国产精品久久网站| 国产精品久久久亚洲一区| 国产欧美日韩激情| 国内精品久久久久久 | 久久精品国产99国产精品澳门 | 99精品黄色片免费大全| 亚洲日本成人网| 99精品热6080yy久久| 亚洲新中文字幕| 久久精品卡一| 男女av一区三区二区色多| 欧美顶级大胆免费视频| 欧美人成免费网站| 国产精品一二一区| 精品91视频| 99国产精品久久久久老师| 99re6热在线精品视频播放速度| 国产精品99久久久久久久女警| 亚洲午夜激情在线| 久久久7777| 欧美三级视频在线| 国产农村妇女精品一二区| 亚洲国产日韩欧美在线图片| 一区二区高清在线观看| 久久精品一区二区三区不卡| 欧美黑人在线观看| 国产精品一区二区久久久久| 伊人精品视频| 亚洲图片你懂的| 久久精品国产99国产精品澳门| 欧美电影资源| 国产农村妇女精品| 亚洲激情欧美| 亚洲在线网站| 欧美成年网站| 国产精品一区视频| 一本色道久久综合亚洲精品按摩 | 亚洲精品视频在线看| 亚洲一区二区三区久久| 久久九九久久九九| 国产精品国产福利国产秒拍| 黄色日韩精品| 亚洲欧美精品在线| 嫩草国产精品入口| 国产婷婷色一区二区三区四区| 亚洲欧洲在线视频| 欧美亚洲视频| 欧美日韩美女| 在线日韩日本国产亚洲| 午夜精品久久久久久久蜜桃app | 国产精品一区二区女厕厕| 亚洲黄一区二区| 久久久精品国产免大香伊| 国产精品福利在线观看| 在线观看国产欧美| 久久久不卡网国产精品一区| 欧美三级视频在线观看| 亚洲电影免费观看高清完整版| 亚洲在线视频| 欧美三级在线| 亚洲精品免费在线| 久久在精品线影院精品国产| 国产精品无码专区在线观看| 亚洲一区二区精品视频| 男女精品网站| 原创国产精品91| 性欧美video另类hd性玩具| 国产精品黄色| 亚洲欧洲日本一区二区三区| 久久久成人精品| 国产日韩精品一区二区三区| 亚洲综合色网站| 欧美日韩综合| 亚洲激情成人网| 久久久久网站| 狠狠色综合日日| 欧美在线999| 国产精品嫩草影院av蜜臀| 一区二区三区高清在线| 欧美日韩亚洲一区二区三区四区| 91久久精品一区| 女人香蕉久久**毛片精品| 亚洲大胆视频| 欧美激情一级片一区二区| 亚洲国产综合在线看不卡| 久久婷婷影院| 亚洲大胆美女视频| 欧美顶级大胆免费视频| 亚洲精品久久视频| 欧美高清在线视频| 亚洲精品国产视频| 欧美欧美天天天天操| 亚洲精品日韩在线观看| 欧美精品自拍偷拍动漫精品| 一本色道婷婷久久欧美| 欧美日韩免费观看一区| 一区二区成人精品| 国产精品国产三级欧美二区| 欧美一区成人| 合欧美一区二区三区| 久久综合狠狠综合久久综合88| 亚洲精品久久久一区二区三区| 欧美伦理a级免费电影| 在线亚洲自拍|