如何查询手风琴布局中当前展开的项目
好的,这是我可以在手风琴布局中找到当前折叠的方式:
Ext.getCmp("myaccordion").query("{collapsed}")
如何以同样的方式找到展开的布局?我看不到扩展的财产。此外,这段代码:
Ext.getCmp("myaccordion").query("not:{collapsed}")
破坏了我的浏览器。
UPD:这是我的决定,基于示例:
Ext.ComponentQuery.pseudos.expanded = function(items) {
var res = [];
for (var i = 0, l = items.length; i < l; i++) {
if (!items[i].collapsed) {
res.push(items[i]);
}
}
return res;
};
然后我就这样查询 Ext.getCmp("myaccordion").query(">*:expanded")
但我们可以这样做吗它更短,使用:不
不知何故?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您不必为此组件查询使用函数。
如果您的框架中的某个位置有其他未折叠的面板
query('[collapsed=false]')
也会包含这些面板,因此这可能是您遇到的问题。但是您可以通过调用
child
将查询限制为仅直接子级:或者,如果您为手风琴提供
,则可以将其限制为选择器字符串本身中的直接子级>id
配置,就像您所做的那样:(id: 'myaccordion'
)。您可以使用:如果您一次只为一个扩展面板配置了手风琴(默认配置),那么将为您提供一个包含一项的数组 - 扩展面板。如果您有多个展开面板,它们将分别包含在数组中。
You don't have to use a function for this component query.
If you have other panels somewhere in your framework that are not collapsed
query('[collapsed=false]')
would also include those so that was probably the problem you were having.But you can limit the query to only direct children by calling
child
instead:Or you can limit it to direct children in the selector string itself if you give the accordion an
id
config, as it looks like you did: (id: 'myaccordion'
). You can use:If you have the accordion configured for only one expanded panel at a time (the default config) that will give you an array with one item - the expanded panel. If you have more than one expanded panel they will each be contained in the array.
你可以这样做:
You could do: