遗留的dojo 1.1 - 当dijit东西没有准备好时,dojo.addOnLoad会触发

时间:2011-07-18 10:58:16

标签: dojo legacy dijit.form

我被迫在网站上使用dojo 1.1。

该页面以声明方式使用dijit小部件,如:

<select dojoType="dijit.form.FilteringSelect">...</select>

我想在加载后在小部件上做一些事情,但如果我这样做:

dojo.addOnLoad(function() {
  dijit.registry.forEach(function(widget, idx, hash) {
    alert('Hello! I am a widget!');
  });
});

没有出现警报,因为这个代码在页面的“dijitification”之前执行,正如我在调试时发现的那样。

当页面确实准备就绪时,有没有办法执行我的代码?

1 个答案:

答案 0 :(得分:1)

以防我(或其他任何人)再次需要它,这就是我解决这个问题的方法:

dojo.addOnLoad(function() {
  dojo._loaders.push(someFunction);
});

这似乎确保在所有其他回调之后执行someFunction,包括dijit回调。