【问题标题】:Is there a way to get an instance of SlickGrid from an element有没有办法从元素中获取 SlickGrid 的实例
【发布时间】:2011-07-31 05:40:18
【问题描述】:

刚开始使用SlickGrid,它似乎不像普通的jquery小部件/插件那样启动自己,您可以通过执行 $(element).slickgrid() 来访问附加到元素的实例。

有没有一种方法可以在创建现有实例时不明显地保留它?查看代码,它看起来不像,但不确定其他人是否遇到过这种情况。

不完全确定他们为什么依赖 jquery,但决定进行自定义初始化。

可以像将它包装在 jqueryui 小部件中一样简单。

【问题讨论】:

    标签: javascript jquery slickgrid


    【解决方案1】:

    您总是可以使用 jQuery 的数据函数来保存对光滑网格实例的引用。

    例如:

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

    您可以使用以下方式访问它:

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

    【讨论】:

    • 我认为这是一种处理它的简单方法,我相信如果我将 SlickGrid 包装在一个小部件中,我会得到这样的结果,因为这是 jquery 存储实例的地方。
    • 尽管我可能仍会编写包装器,但这基本上就是答案。
    【解决方案2】:

    我觉得这类问题很有趣。仅仅因为某些东西使用了 jQuery 库,它不会自动使其成为 jQuery 插件或 jQueryUI 小部件。 SlickGrid 两者都不是,这就是它不遵循他们的设计约定或 API 的原因。

    抛开那次小小的咆哮,马克的回答是正确的。如果出于某种原因您想将实例变量与 DOM 元素一起存储,您可以使用 $(element).data() 轻松做到这一点。

    【讨论】:

    • 如果他们有充分的理由,我有点同意你的看法,但据我所知,他们的实例化方法并没有提供比使用插件包装器获得的好处和一致性更大的价值.
    猜你喜欢
    • 2011-10-20
    • 1970-01-01
    • 2012-06-02
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    相关资源
    最近更新 更多