2011-04-06 114 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

相关问题