ExtJS: получить абсолютную позицию динамических контейнеров
Мне нужно выяснить абсолютную позицию динамически создаваемых контейнеров, которые добавляются на панель.
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);
Я узнал, что могу получить позицию только тогда, когда контейнеры уже отрендерены. Таким образом, я использую слушатель пострендер. Методы getY()/getTop() и т. Д. Работают не так, как я ожидал. Я всегда получаю 1 для моей координаты x и не имею адекватных координат y.
Что мне здесь не хватает?
Спасибо!
1 ответ
В зависимости от того, как вы реализуете свою панель, ключевое слово this
может возвращать информацию для неправильной панели.
Вы создаете своего слушателя так:
afterrender: function(component) {
console.log('Y: ' + component.getY() +' X: '+ component.getX());
}
Вот скрипка для тестирования: https://fiddle.sencha.com/