ExtJS:获取动态容器的绝对位置

ExtJS:获取动态容器的绝对位置,extjs,containers,positioning,absolute,Extjs,Containers,Positioning,Absolute,我需要找出添加到面板的动态创建的容器的绝对位置 var activityContainer = Ext.create('Ext.Container', { html: activityName, width: ACTIVITY_WIDTH, height: ACTIVITY_HEIGHT, margin: topMargin + ' 0 0 0', cls: 'activity', listeners: { render: func

我需要找出添加到面板的动态创建的容器的绝对位置

var activityContainer = Ext.create('Ext.Container', {
    html: activityName,
    width: ACTIVITY_WIDTH,
    height: ACTIVITY_HEIGHT,
    margin: topMargin + ' 0 0 0',
    cls: 'activity',
    listeners: {
        render: function () {
             this.getEl().dom.title = 'Name: ' + activity.name + reqQuicktip;
        },
        afterrender: function() {
             console.log('Y: ' + this.getEl().getTop() +' X: '+ this.getEl().getLeft())
        }
     }
})

tradePanel.add(activityContainer);
我已经了解到,我只能在容器已经渲染的情况下才能获得位置。因此,我使用afterrender侦听器。getY/getTop等方法没有像我期望的那样工作。我的x坐标总是取1,没有足够的y坐标

我错过了什么


谢谢

根据您实现面板的方式,关键字this可能返回错误面板的信息

您可以这样创建侦听器:

afterrender: function(component) {
    console.log('Y: ' + component.getY() +' X: '+ component.getX());
}

这里有一把小提琴供您测试:

Ok。我用这种方式实现了它,但仍然得到了相同的结果。你认为你可以提供一个解决你的问题的工具,让我看看吗?我意识到我得到的是相对于面板中最后一个项目的位置,而不是绝对位置=/