【发布时间】:2016-06-13 14:24:45
【问题描述】:
我有一些旧的 jquery UI 代码,我想升级到今天的标准。由于我的代码是为 jQuery UI 1.7.3 编写的,我决定逐个版本升级到代码版本。可在此处找到发布列表:https://jqueryui.com/upgrade-guide/
因此,如果我打开 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";
但这会阻碍应用程序。有谁知道为什么?我错过了什么?
感谢您的帮助
【问题讨论】:
标签: javascript jquery-ui jquery-widgets