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";
但是這會剎車應用程序。有人知道爲什麼我錯過了什麼?
感謝您的幫助