2012-04-19 52 views
0

在創建jquery.ui.widget時使用深度嵌套選項是好還是不好的做法我可以創建深層的jquery.ui.widget選項嗎?

下面是這樣的嗎?如果用戶想初始化後說改變height的選項outContainer CSS,他們將不得不替換選項內的整個css對象?

options: { 
    views: null, 
    transitionTypes: { 
     showView: { transition:slide, mode:show}, 
     hideView: { transition:slide, mode:hide} 
    }, 
    css: { 
     outContainer: { 
      height: '0', 
      display: 'none' 
     } 
    } 

} 

回答

0

我寧願有一個很好的分段選項對象比一個大的列表。 雖然要小心設置好默認值,所以你不必在初始化時將大對象傳遞給插件...

至於操作對象之後: 我會讓開發者操縱一組「公共」屬性,然後做一個「重繪」插件(不是一個全新的對象,而只是一個軟重新初始化)。

object.css.outContainer.height = "100"; 
object.redraw(); 
+0

這是一個好主意,但實際上是沒有任何理由,你不應該繞過jquery.ui.widget提供的選項的基礎設施? – Chris 2012-04-19 12:12:23

+0

我看着小部件工廠,因爲我還沒有與它做了很多.. ,你可以用_refresh工作在一個優雅的方式來更新屬性。 Joe Flateau用_create方法做了一個很好的例子。我建議你也實現_refresh方法,所以可以動態地改變一個對象,並讓這個小部件立即進行排序。我的解決方案更多的是自定義插件而不是widget工廠。 – Deefjuh 2012-04-19 12:35:12

+0

顯然,Widget具有一些$ .extend(true,obja,objb)類似的功能,Joe的小提琴證明了這一點。 – Deefjuh 2012-04-19 12:42:22

相關問題