2012-08-14 91 views
2

有沒有一種方法來分組具有相同設置的自定義控件的JavaScript?優化自定義控件的JavaScript

例:

我把3個我的自定義控件放在頁面上。每一個寫這樣

ucx.initialize(controlID, settings); 

所以我得到一個javascript ...

ucx.initialize("txtValue1", { sync: true, mask: '0 km' }); 
ucx.initialize("txtValue2", { sync: true, mask: '0 km' }); 
ucx.initialize("txtValue3", { sync: true, mask: '0 mm'}); 

正如我們所看到的, 「txtValue1」 和 「txtValue2」 具有相同的設置。

所以我想將它們分組:

ucx.initialize(["txtValue1", "txtValue2"], { sync: true, mask: '0 km'}); 
ucx.initialize("txtValue3", { sync: true, mask: '0 mm'}); 

這是可能的嗎?

回答

0

這完全取決於你的initialize功能。

至少,你可以使用默認常用的設置對象:

var initialize = function (controlID, settings) { 
    ... 
    settings = settings || { sync: true, mask: '0 km'}; 
    ... 
}; 

然後,如果你調用函數沒有通過設置對象,則默認爲一個共同的:

ucx.initialize("txtValue1"); 
ucx.initialize("txtValue2"); 
ucx.initialize("txtValue3", { sync: true, mask: '0 mm'}); 
0

你可以創建自己的方法,將同樣的工作:

ucx.initializeMultiple = function() { 
    var settings = arguments[arguments.length - 1]; 
    for (var i = 0; i < arguments.length - 1; i++) { 
     ucx.initialize(arguments[i], settings); 
    } 
} 

然後,可撥打:

ucx.initializeMultiple("txtValue1", "txtValue2", { sync: true, mask: '0 km'}); 

,只要你想你可以把儘可能多的字段名稱中的參數。最後一個參數是設置對象。在它之前的所有參數被解釋爲應該每個都應該獲得該設置的字段名稱。


請記住,設置不必內聯。在不創建這種新方法的情況下,您也可以這樣做,以避免重複設置:

var settings1 = { sync: true, mask: '0 km'}; 
ucx.initialize("txtValue1", settings1); 
ucx.initialize("txtValue2", settings1);