1、簡化了 show/hide
之前的 show/hide 是大兼容,比如 show, 無論元素的 display 是寫在style,stylesheet裏都能顯示出來。3.0 則不同了,寫在 stylesheet 裏的 display:none 調用 show 後仍然隱藏。 3.0 建議採用 class 方式去顯示隱藏,或者完全採用 hide 先隱藏(不使用css代碼),再調用 show 也可以。
1
2
3
4
5
6
7
8
9
|
<style> input
{ display:
none; } </style> <input
id= "txt" type= "text" value= "" /> <script> $( '#txt' ).show(); //
仍然隱藏的狀態 </script> |
2、data 方法兼容 data-name-11 寫法
1
2
3
4
5
|
<input
id= "txt" type= "text" value= "" data-name-11= "aa" /> <script> //
3.0 版本 輸出 {"name-11": aa}, 之前版本輸出 {} $( '#txt' ).data() </script> |
這個問題本質是$.camelCase方法的實現差異
1
2
|
//
3.0 輸出 "name-11", 3.0 之前版本輸出 "name11" $.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
2
3
4
|
//
以下方法在 3.0 後沒有了 $.ajax().success $.ajax().error $.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以下仍然不支持,但其它瀏覽器則明顯提升性能