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

时间:2014-11-06 00:51:35

标签: 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: 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坐标。

我在这里缺少什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

您可以像这样创建听众:

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

以下是您要测试的小提琴:https://fiddle.sencha.com/#fiddle/cud