在我的面板中,我有一个导航树。在itemclick
窗口中向下滚动到特定的表单字段。我是这样做的:
location.hash = 'UID'
所以,我可以通过Ext.getCmp(UID)
获取元素。但我知道,这种使用id的做法并不好,因为可能出现布局崩溃。所以,我现在想要使用itemId
而不是id
,但问题是如何模拟与location.hash
相同的行为。
答案 0 :(得分:1)
仅仅因为您没有定义ID,这并不意味着该元素没有ID。 ExtJS自动创建唯一ID。
良好的OO设计应该提供您需要的参考。 ExtJS这样做我会说99.9%。
示例: itemclick 事件,参数此。可以是窗口,面板,按钮等等。
itemclick( myElement, record, item, index, e, eOpts ) {
...
location.hash = myElement.id;
...
}
如果您有一个Ext.Component,但想要此元素的父组件或子组件,则应使用向上()和向下()方法。这仍然比Ext.getCmp()更快,因为您不需要搜索整个DOM。
myButton.up(); //get parent
myButton.up("toolbar") //tries to find a parent with xtype "toolbar"
myButton.down("textfield"); //you get it...
答案 1 :(得分:1)
答案 2 :(得分:0)
您可以使用以下命令获取该项目:
Ext.ComponentQuery.query('[itemId=' + UID + ']')[0];