2016-06-13 173 views
0

我有一些舊的jQuery UI代碼,我想升級到今天的標準。由於我的代碼是爲jQuery UI 1.7.3編寫的,因此我決定通過發佈升級到代碼版本。在這裏找到發佈列表:https://jqueryui.com/upgrade-guide/從jQuery UI 1.7升級到1.8失敗

因此,如果我打開1.8升級指南,我可以看到發生了什麼變化。到現在爲止還挺好。據我所看到的,以下更改適用於我的代碼:

  • 更名_init()來_create()
  • 因爲它應該改名_setData()來_setOption()
  • 刪除_getData()永遠不會被覆蓋
  • $ .widget()現在接受一個基礎小部件作爲第二個參數進行擴展;默認爲$ .Widget

雖然我不確定如何處理_getData()。我必須用_Option還是_getOption來代替它。這在指南中不明確。

儘管如此,更改我的代碼導致非工作應用程序。我希望有人能幫助我。

這是(部分)我的舊代碼:

_init: function() { 
     var index = this.options.index; 
     var num_ranks = this._RANKS.length; 
     var suit = parseInt(index/num_ranks); 
     this._setData('suit', suit); 
     this._setData('rank', index - (suit * num_ranks)); 
     this.element.addClass('container') 
       .append('<div class="downturned">'); 
    }, 
    _suit: function() { return this._getData('suit'); }, 
    _rank: function() { return this._getData('rank'); }, 

並進一步代碼:

$.widget('ui.card', Card); //Create the widget 
    $ui.card.getter = "is_downtunred"; 

上面我已經改變(使用指南)到:

_create: function() { 
     var index = this.options.index; 
     var num_ranks = this._RANKS.length; 
     var suit = parseInt(index/num_ranks); 
     this._setOption('suit', suit); 
     this._setOption('rank', index - (suit * num_ranks)); 
     this.element.addClass('container') 
       .append('<div class="downturned">'); 
    }, 
    _suit: function() { return this._getOption('suit'); }, 
    _rank: function() { return this._getOption('rank'); }, 

而且在代碼中(在這裏沒有任何改變):

$.widget('ui.card', Card); //Create the widget 
    $ui.card.getter = "is_downtunred"; 

但是這會剎車應用程序。有人知道爲什麼我錯過了什麼?

感謝您的幫助

回答

0

更換this._getData()this.option()解決了我的問題