jquery 3.0變化

Query 3.0 的變化

時隔 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、簡化了 show/hide

之前的 show/hide 是大兼容,比如 show, 無論元素的 display 是寫在style,stylesheet裏都能顯示出來。3.0 則不同了,寫在 stylesheet 裏的 display:none 調用 show 後仍然隱藏。 3.0 建議採用 class 方式去顯示隱藏,或者完全採用 hide 先隱藏(不使用css代碼),再調用 show 也可以。


 
  1. <style>

  2. input {

  3. display: none;

  4. }

  5. </style>

  6. <input id="txt" type="text" value=""/>

  7. <script>

  8. $('#txt').show(); // 仍然隱藏的狀態

  9. </script>


 

 

2、data 方法兼容 data-name-11 寫法

 


 
  1. <input id="txt" type="text" value="" data-name-11="aa"/>

  2. <script>

  3. // 3.0 版本 輸出 {"name-11": aa}, 之前版本輸出 {}

  4. $('#txt').data()

  5. </script>


 

這個問題本質是$.camelCase方法的實現差異

 


 
  1. // 3.0 輸出 "name-11", 3.0 之前版本輸出 "name11"

  2. $.camelCase('data-name-11')

 

3、derferred 兼容了 Promise/A+

3.0 終於可以自信的宣告支持 Promise/A 了,之前一直被詬病是閹割版的。

 

4、$.ajax 對象刪除了 success | error | complete 方法

這是因爲 Promise/A 規範的推動,大家對 Promise 的使用越來越多,之前對應 Derferred 上的幾個方法沒有存在的必要了

  • derferred.done -> jqXHR.success
  • derferred.fail    -> jqXHR.error
  • derrerred.always -> jqXHR.complete

 
  1. // 以下方法在 3.0 後沒有了

  2. $.ajax().success

  3. $.ajax().error

  4. $.ajax().complete

 

5、width/height,css(width) / css(height) 的返回值一律是十進制

之前部分瀏覽器特殊情況下返回浮點數。

 

6、 移除了註冊事件的快捷函數 load | unload | error

  • load 名稱和 ajax load 同名, 含糊不清。
  • unload 如果 load 去掉, unload 也沒有存在的意義了。
  • error 採用 window.onerror 註冊,不是一個標準事件 hander,因此也建議移除

 bug:http://bugs.jquery.com/ticket/11733

 

7、動畫模塊使用 “requestAnimationFrame” 替代 setTimeout

requestAnimationFrame IE9及android4.4以下仍然不支持,但其它瀏覽器則明顯提升性能

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章