2012-07-07 76 views
0

我已經開發了一個jQuery插件,它具有默認選項:會員變成未定義

$.fn.incromentor.defaults = { 
    max : 65355, 
    min : 0 
}; 

在插件的初始化,我合併用戶選擇用插件的默認選項使用$.extend

function init($elm, options) 
{ 
    this.$element = $elm; 
    this.options = $.extend({}, $.fn.incromentor.defaults, options); 
} 

所以問題是,如果用戶設置minmax0,該屬性變成未定義!
這是爲什麼,我如何存儲一個簡單的0?

這裏一個的jsfiddle:http://jsfiddle.net/KDXa6/2/

編輯
在JSLint的掉毛的代碼後,錯誤dissapeared所以我懷疑那裏是我的打字一個不起眼的錯誤。

+3

無法重現:http://jsfiddle.net/XYxTp/ – 2012-07-07 16:40:36

+0

它即使使用jQuery 1.2.6也能工作。你不是錯誤地輸入了一些東西,有效地執行''.extend({},undefined,options)';'? – biziclop 2012-07-07 16:41:42

+0

mmm,這就是我懷疑的......我用完整的代碼創建了一個JSFiddle,我在其中放置了一個console.log()來顯示我的意思:http://jsfiddle.net/KDXa6/ ​​ – 2012-07-07 16:52:21

回答

0

$ .fn.incromentor.defaults = {}會覆蓋您的默認選項,因此其他內容(如more_text,less_text)會變爲未定義。你的用戶應該通過他們的選擇到構造如

$('#myel').Incrementor({ max : 65355, min : 0}); 

-

$這$(本)http://jsfiddle.net/KDXa6/1/

+0

好的,這是一個錯誤,但沒有解決問題 – 2012-07-08 19:13:52

+0

看到更新anwswer,jsfiddle似乎下降,所以現在不能測試 – worenga 2012-07-09 11:04:15

+0

其中$ .fn.incromentor.defaults被設置爲{}? – 2012-07-09 16:27:17