Проблема в элементе DOM. Как вы выполняете
button.getContainerElement().getDomElement()
он еще не появился в дереве DOM. Таким образом, возвращаемое значение функции null
. Qooxdoo имеет очередь рендеринга, поэтому проявление того, что вы делаете в программе, в основном немного задерживается. Чтобы обойти это, используйте событие «появляются»:
var button = new qx.ui.form.Button("First Button").set({
enabled: false
});
var doc = this.getRoot();
button.addListener('appear',function(){
var fadeToggle = new qx.fx.effect.core.Fade(
button.getContainerElement().getDomElement()
).set({
from : 1.0,
to : 0.0
});
button.addListener('execute',function(){
fadeToggle.start();
});
button.setEnabled(true);
});
Бит с отключением и включением кнопки просто для того, чтобы хвастаться ... это будет так быстро, что никто не заметит.
В фреймворке также есть несколько методов * .flush (), где вы можете заставить рендеринг происходить немедленно, поэтому их вызов (правильные :-)) также может быть вариантом ... но поскольку JS должен написано асинхронно всякий раз, когда это возможно, вышеупомянутое, вероятно, является правильным решением.