ExtJS:如何在添加按钮之前获取按钮的宽度?

时间:2017-01-20 03:20:33

标签: javascript html css extjs

在以下情况下,是否可以在将按钮的宽度添加到面板之前获取该按钮的宽度:

var myButton = Ext.widget('button', {
       text : 'Hello'
});

myButton.getWidth(); //This is undefined

panel.add(myButton);

我知道由于按钮没有在屏幕上呈现,而且我没有明确地给它一个宽度,所以此时无法知道宽度。但是在呈现按钮之前是否有事件或其他事件会让我知道它在屏幕上显示之前的宽度?

1 个答案:

答案 0 :(得分:1)

简单地说,如果您查看按钮源代码,他的尺寸会在渲染中设置。

您不应该使用按钮宽度,而应使用其他布局。

可能有办法,但似乎很疯狂:

var myButton = Ext.widget('button', {
       text : 'Hello'
}),
clone=Ext.clone(myButton);
panel.add(clone);
clone.getWidth();//This is width
clone.destroy();

panel.add(myButton);

就像你可以看到问题在于创建和添加它只是为了获得他的宽度。 它可能没有任何意义,但如果你需要做其他事情,可以用更清楚的方式改变问题。当然,我们可以得到你问题的答案。