Qooxdoo на окне готово - PullRequest
       2

Qooxdoo на окне готово

2 голосов
/ 25 февраля 2012

Я просто пытался вызвать событие после того, как приложение qooxdoo было готово, поэтому я начал с приложения "Hello World" и добавил рекомендацию в самом конце основной функции:

 main : function(){ 
         // Hello World part...

    qx.event.Registration.addListener(window, "ready", function() { alert("application ready"); });
 }

но, похоже, он не срабатывает в chrome или firefox (я не проверял IE), поэтому я выкопал еще немного и обнаружил, что это сработало.

if (qx && qx.event && qx.event.Registration)
{
  var manager = qx.event.Registration.getManager(window);
  var handler = manager.findHandler(window, "ready");

  if (handler.isApplicationReady()) {
    alert("application ready");
  }
}

Может кто-нибудь сказать мне, почему рекомендуемый метод не работает или я помещаю его не в том месте?

Спасибо!

Ответы [ 3 ]

1 голос
/ 26 февраля 2012

Получили ли вы "рекомендации" из "От jquery до qooxdoo" документа ?! (Это всегда помогает, если вы цитируете свои источники).

Я думаю, что вы смешиваете вещи здесь. Во-первых, «окно готово» не то же самое, что «приложение готово». Я думаю, что «окно готово» (как показано на связанной странице руководства) - это низкоуровневое событие глобального объекта окна JS. Если вы используете высокоуровневое приложение qooxdoo (как оно выглядит), это событие давно прошло, когда вы регистрировали его в своем методе main . Поэтому обработчик событий никогда не запускается.

Во втором примере кода вы не слушаете событие , но проверяете состояние с помощью isApplicationReady () . Этот статус может возвращаться как истинный спустя долгое время после того, как событие, которое превратило приложение из неготового в готовое, прошло.

0 голосов
/ 06 августа 2018

Более просто !!!

Событие QX Core Widget «появиться» совпадает с событием «onReady», например, в других JS-фреймворках, таких как YUI, JQuery и т. Д.

http://www.qooxdoo.org/5.0.2/api/#qx.ui.core.Widget~appear!event

имеет тот же эффект.

best, Tamer

0 голосов
/ 09 марта 2018

переопределяет просто функцию финализации в области членов приложения

finalize : function()
{
    // Call super class
    this.base(arguments);
    alert("Hello World");
}
...