隨著jQuery 3版本的推出,很多開發者也開始擔心原本的jQuery 1代碼是否還能正常運行。幸運的是,jQuery 3與之前的版本不兼容的地方較少,因此大部分jQuery 1代碼依舊可以在jQuery 3中使用。
然而,有些功能在jQuery 3中被刪除或者已經有了更好的替代方案。在升級jQuery 3前,開發者應該先了解因為版本不兼容導致的問題以及應該如何解決。
// jQuery 1 $(document).ready(function(){ // code goes here }); // jQuery 3 $(function(){ // code goes here });
以上代碼表示的是在不同版本的jQuery中如何編寫文檔就緒事件的處理器。在jQuery 3中,可以很方便地使用$(function(){})來替代jQuery 1的$(document).ready(function(){})。
// jQuery 1 $('input:checkbox:checked').each(function(){ // code goes here }); // jQuery 3 $('input:checkbox:checked').each(function(){ // code goes here }).promise().done(function(){ // code goes here });
這段代碼表示的是如何處理一組選中的復選框的方法。在jQuery 3中,加入了一個新的語法規則,即在鏈式調用中使用.promise()和.done()。
除此之外,jQuery 3還移除了一些不常用的功能,例如應用程序緩存API(HTML5標準中已有替代方案)、.click()和.keypress()方法的IE8上的修復,以及一些特定于IE的方法(例如.removeData()中的compatMode)。如果你的代碼使用到了這些功能,那么升級jQuery 3會影響到你的程序。
總的來說,開發者應該優先選擇使用jQuery最新的版本,但是在升級前,還是有必要了解jQuery 3與之前版本存在的不兼容問題以及如何解決。