EXTJS:具有相同id的对象的两个窗口

时间:2010-08-11 09:46:55

标签: extjs

当我在每个窗口中创建包含单个文本字段对象的两个窗口对象时。但该文本字段的ID是相同的。当我重新调整大小,最大化或最小化窗口对象时,控件从一个窗口移动到另一个窗口。 请查看以下代码并重新调整第一个标题为“'window 1'

的窗口

Ext.onReady(函数(){

var win = new Ext.Window({
    title : 'window 1',
    width:200,
    height:200,
    maximizable : true,
    x : 50,
    items: [{xtype : 'textfield', id: 'text1'}] 
});

win.show(this);

var win2 = new Ext.Window({
    title : 'window 2',
    width:200,
    height:200,
    maximizable : true,

    x : 350,
    items: [{xtype : 'textfield', id: 'text1'}]

});

win2.show(this);

});

1 个答案:

答案 0 :(得分:3)

对于HTML,每个 id 必须唯一。否则,您有异常行为。

实际上,Ext.get方法有一个基于元素 id 的缓存。

所以真正的问题是:为什么要为文本字段设置相同的ID?

如果您需要已知的ID,可以使用:

tId = Ext.id(); // generates an id
items: [{xtype : 'textfield', id: tId}]

或者稍后访问textfield元素/组件,您可以使用 ref itemId http://dev.sencha.com/deploy/dev/docs/?class=Ext.Component