2012-02-29 58 views
0

我正在創建插件並將默認映射分配給我的對象。但是當我打電話給我的插件,然後我得到的對象不確定。 這裏是我的代碼插件不創建對象。顯示對象狀態undefined

;(function($){ 

    $.dialog = { 

     defaults : { 

      timeout: 0 , 
      showClose: true, 
      message: "Your message", 
      .... 

     } //end of defaults 

    }; //end of $.dialog = {} 

    $.extend({ 

     dialog : function(userConfig) { 

      var config = (userConfig) ? $.extend({}, $.dialog.defaults, userConfig) 
             : $.dialog.defaults; 
      $.dialog.createUI(config); 

      return this; 

     } //end of function(userConfig) 

    }); //end of $.fn.extend({}) 

    $.dialog.createUI = function(config){ 
     ..... 
    } 

})(jQuery); //end of (function($){} 

和我打電話像這樣

$(document).ready(function(){ 

    $.dialog(); 

}); //end of $(document).ready(fn) 

但我得到我的配置對象定義。我無法訪問我的默認屬性。我究竟做錯了什麼?

感謝

回答

0

我改變了你這樣的腳本,它的工作

;(function($){ 
    $.extend({ 
     dialog : function(userConfig) { 
      var config = (userConfig) ? $.extend({}, $.dialog.defaults, userConfig) : $.dialog.defaults; 
      $.dialog.createUI(config); 
      return this; 
     } //end of function(userConfig) 
    }); //end of $.fn.extend({}) 

    $.dialog.defaults = { 
     timeout: 0, 
     showClose: true, 
     message: "Your message" 
    }; 

    $.dialog.createUI = function(config){ 

    } 
})(jQuery); //end of (function($){} 

$(document).ready(function(){ 
    $.dialog(); 
}); //end of $(document).ready(fn) 
+0

@charlietfl不,你的建議沒有工作。謝謝。但是我的腳本有什麼問題。我做錯了什麼? – Basit 2012-03-01 04:50:27

+0

我使用'$ .dialog.defaults'而不是'$ .dialog = {defaults:{'。它對你有用嗎? – arunes 2012-03-01 06:04:45

+0

是的,這就是爲什麼我標記你的答案:)。但是'$ .dialog.defaults = {}'與'$ .dialog = {defaults:{'。在我的情況下,我首先創建一個對象,然後分配屬性。在你的情況下,你正在創建和分配屬性在同一行。在這兩種情況下,** $。dialog **都有一個proeprty默認值。那麼區別是什麼呢? – Basit 2012-03-01 06:43:06

0
$.extend({ dialog 

dialog是不確定的,應該是$.dialog。 使用的console.log檢查變量和對象在你的代碼,會爲你節省大量的時間