从jQuery UI 1.7升级到1.8失败
问题描述:
我有一些旧的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";
但是这会刹车应用程序。有人知道为什么我错过了什么?
感谢您的帮助
答
更换this._getData()
与this.option()
解决了我的问题