2013-07-01 57 views
0

我有一個簡單的小部件,它的結構是這樣的:我定製的jQuery插件不會升級到jQuery UI的工作後,1.10

(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); 

但是從1.8.3升級jQuery和jQuery的UI到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' 

NB。更新通過兩個Rails gems「jquery-rails」和「jquery-ui-rails」完成。

+0

關注jQuery Migrate。它可以告訴你什麼功能已經改變/已被棄用。 – musicnothing

回答

0

我看着jQuery UI的窗口小部件,並改變了語法:

(function ($, undefined) { 
    $.widget("ui.newslettersignup", { 
     _create: function() { 
     }, 
     options: {} 
    }); 
})(jQuery); 

,它然後工作了。我仍然無法找到關於它爲什麼被改變的註釋,或者爲什麼這不起作用。

相關問題