2011-04-06 138 views
5

剛開始使用SlickGrid,它似乎並不像一個正常的jquery widget/plugin那樣啓動本身,你可以通過它訪問附加到元素的實例做$(元素).slickgrid()。有沒有辦法從一個元素獲得SlickGrid的實例

有沒有辦法讓現有的實例保留,而沒有明顯地堅持它,當你創建它?縱觀代碼,它看起來並不像它,但不知道是否有其他人遇到過這種情況。

不完全確定他們爲什麼依賴jquery,但決定有一個自定義的初始化。

可能就像將它包裝在jqueryui小部件中一樣簡單。

回答

9

你總是可以使用jQuery的數據函數來保存對光滑網格實例的引用。

例如:

var grid = new Slick.Grid(container,data,columns,options); 
$(element).data('slickgrid', grid); 

,並且可以使用訪問:

$(element).data('slickgrid'); 
+0

我認爲這是一個簡單的方法來處理它,我相信這基本上是我會得到如果我包裝SlickGrid在一個小部件,因爲這是jQuery的存儲實例無論如何。 – 2011-04-07 03:34:12

+0

儘管我可能還會寫封裝,但這實際上是答案。 – 2011-04-07 03:38:43

-2

我發現這類問題有點滑稽。僅僅因爲某些東西使用了jQuery庫,它並不會自動將其作爲jQuery插件或jQueryUI小部件。 SlickGrid既不是,這就是爲什麼它不遵循其設計約定或API。

除了小調,馬克的回答是正確的。如果出於某種原因想要使用DOM元素存儲實例變量,可以使用$(element).data()輕鬆實現。

+2

我有點同意他們,如果他們有一個不錯的理由,但從我可以告訴他們的實例化方法提供的優點和一致性,你會從插件包裝得到的價值。 – 2011-04-07 03:27:38

相關問題