从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()解决了我的问题