Javascript dojo动态调整小部件的大小

Javascript dojo动态调整小部件的大小,javascript,dojo,widget,Javascript,Dojo,Widget,我是一个dojo初学者,手头有一个使用dojo 1.3.2的“大型”项目(不可能升级到新版本)。我正在尽可能地使用这个旧版本的文档,我正在取得进展,但dojo迷宫中仍有一些我不知道或不完全理解的角落。我希望我的问题不会重复,因为我还找不到问题的答案 在项目中有一个小部件,它可以显示或隐藏。在某些用户操作中,小部件应该动态调整大小。我通过使用dojo.query(用于访问正确的dom节点)和dojo.style(用于实际调整大小)实现了这一点的逻辑,到目前为止效果很好 只有一个问题:如果小部件第一

我是一个dojo初学者,手头有一个使用dojo 1.3.2的“大型”项目(不可能升级到新版本)。我正在尽可能地使用这个旧版本的文档,我正在取得进展,但dojo迷宫中仍有一些我不知道或不完全理解的角落。我希望我的问题不会重复,因为我还找不到问题的答案

在项目中有一个小部件,它可以显示或隐藏。在某些用户操作中,小部件应该动态调整大小。我通过使用
dojo.query
(用于访问正确的dom节点)和
dojo.style
(用于实际调整大小)实现了这一点的逻辑,到目前为止效果很好

只有一个问题:如果小部件第一次显示,它有一个默认大小(来自html),尽管该函数是通过小部件的onShown函数调用的。我的重新调整逻辑只会在发生导致重新调整大小的用户操作后或下次显示小部件时影响小部件

是否有任何地方我应该调查,可能导致这种行为的标准?我会很感激每一个提示,因为我不知道是否有依赖通过该项目导致这种行为。无论如何,对我来说,这似乎与dojo有关,这是合乎逻辑的,因为尝试第二次调用ect并没有帮助


谢谢

我建议您仔细阅读dijit生命周期:

O'Reilly的权威指南已经过时了,但这对于1.3.2来说确实是件好事:

我能找到的最近的Dojo文档适用于1.6,但基本上应该适用于:


您想了解startup()-这很重要,因为startup()是第一个生命周期方法,小部件将被放置在DOM中。

这对我很有帮助,但不幸的是,这并不能解决问题。要调整大小,我需要一个特定的domNode,它在放置代码的实例中没有直接引用。我用dojo.query获得了这个domNode,这一切都很好。根据您关于startup()的提示,我将搜索代码移到了这里,因为在这里它只执行一次(我以前在onShow中这样做过),并且找到了节点。在此方法中调用my resize()似乎不会改变已经描述的行为。调整大小仍然会在下一个节目或用户操作时发生。有什么想法吗?给这个问题某种形式的结束,而不是对旧东西真正有一个答案:今年我们终于可以将dojo版本升级到1.10,代码我已经工作得很好,达到了我的预期。因此,这似乎是旧版本特有的问题。假设现在大多数开发者对此不感兴趣。