0

次のような構造の単純なウィジェットがあります。

(function ($, undefined) {    
     $.ui.newslettersignup = {
      _create: function () {
         console.log('dosomething');
      },
      destroy: function () {
          // if using jQuery UI 1.8.x
          $.Widget.prototype.destroy.call(this);
          // if using jQuery UI 1.9.x
          //this._destroy();
      },
      options:{

      }
    };
    $.widget("ui.newslettersignup", $.ui.newslettersignup);
})(jQuery);

しかし、jQuery と JQuery-UI を 1.8.3 から 1.10 にアップグレードした後、エラーが発生し続けます。

Uncaught TypeError: Cannot read property 'length' of undefined jquery.js:632
jQuery.extend.each jquery.js:632
$.widget jquery.ui.widget.js:123
(anonymous function) ui.newslettersignup.js:47
(anonymous function)

アップデート ノートを見ようとしましたが、jQuery.UI.Widget の変更についての言及は見当たりませんでした。

ブラウザでデバッグすると、$.ui.newslettersignup が利用可能であることがわかりますが、$('something').newslettersignup(); を実行しています。エラーが表示されます:

Object [object Object] has no method 'newslettersignup'

注意。更新は、2 つの Rails gem "jquery-rails" と "jquery-ui-rails" によって行われます。

4

1 に答える 1