JQueryUI 小部件函数作用域问题
我不确定如何描述这个问题,但我正在使用非常有用的 SlickGrid JQuery 插件制作一个 JQueryUI 小部件。 Slickgrid 允许设置用作“过滤器”的函数,以启用在客户端上搜索行。像这样...
_filter: function (item) {
if (this.options.searchString == null)
{ return true; }
if (this.options.searchString.length == 0)
{ return true; }
for (var prop in item) {
if (item[prop] != null) {
if (item[prop].toString().toLowerCase().indexOf(searchString.toLowerCase()) > -1)
{ return true; }
}
}
return false;
}
self.options.dataView.setFilter(self._filter);
我的问题是,一旦调用 _filter
,this
就会设置为窗口元素,并且不再保存对小部件的引用,因此我的所有选项不可用。我如何知道_filter
用户在网格中搜索什么术语?
困难:页面上将出现多个小部件实例,每个实例都有自己单独的过滤器。另外,我不想修改 SlickGrid 的工作方式。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不确定这是否是最好的答案,但这就是我想到的:
通过 http://www.robertsosinski.com/2009/04/28/binding-scope-in-javascript/ ,在我的创建函数中,我写了
哪个绑定范围到小部件。
Not sure if this is the best answer, but here's what I came up with:
Via the advice on http://www.robertsosinski.com/2009/04/28/binding-scope-in-javascript/ , in my create function, I wrote
Which bound the scope to the widget.