jQuery 是一款廣泛使用的 JavaScript 庫(kù),有助于以更少的代碼實(shí)現(xiàn)常見的交互和動(dòng)畫效果。jquery 分為一代、二代、三代,今天我們來看看 jQuery 1 和 3 代的區(qū)別。
$(document).ready(function(){ //code });
1. 選擇器
jQuery 1.x 和 2.x 當(dāng)中使用的選擇器引擎為 Sizzle,而 jQuery 3.x 已經(jīng)移除了 Sizzle 引擎,轉(zhuǎn)而采用瀏覽器的原生選擇引擎document.querySelectorAll
。
//jQuery 1.x $("div") //jQuery 3.x $("div")
2. 登記事件
jQuery 1.x 中,$.proxy()
被用于將函數(shù)綁定到特定的上下文,而 jQuery 3.x 中,使用Function.prototype.bind
方法。并且 jQuery 1.x 中的事件綁定方法$.on()
和綁定事件處理程序的舊方法.bind()
也不再推薦使用。
//jQuery 1.x $("#button").click($.proxy(this.handleClick, this)); //jQuery 3.x $("#button").click(this.handleClick.bind(this));
3. Ajax請(qǐng)求方式
在 jQuery 1.x 版本中,使用$.ajax()
是比較常見的一種方式來實(shí)現(xiàn) Ajax 請(qǐng)求,而在 jQuery 3.x 版本中,$.ajax()
已經(jīng)被廢棄掉并推薦使用原生的fetch()
和XMLHttpRequest
API。
//jQuery 1.x $.ajax({ url: "http://example.com", success: function(data){ //code }, error: function(){ //code } }); //jQuery 3.x fetch("http://example.com") .then(function(response) { if (!response.ok) { throw new Error("HTTP error " + response.status); } return response.json(); }) .then(function(data) { //code }) .catch(function(error) { //code });
總結(jié)來說,jQuery 3.x 更趨向于使用原生瀏覽器 API,而 jQuery 1.x 更多的使用自身的屬性和方法。
上一篇docker和李維斯
下一篇vue查詢按鈕屬性