0

我在尝试使用 Errai 2.3.2 从 Java 调用 JS 函数时遇到问题我正在使用 Bootstrap 开关,我需要调用 JS 函数才能激活它。我需要在创建页面并将所有元素附加到 DOM 元素后执行此操作。

我已经尝试了所有方法:@PostConstruct、@PageShowing、@PageShown、onAttach().. 但这些都不适合我。

我有这个:

@Override
public void onAttach(){
    enableToggleSwitch();
}

public static native void enableToggleSwitch() /*-{
    $wnd.enableToggle();
}-*/;

当我调试它时,似乎在元素附加到 DOM 之前调用了 onAttach() 方法。

有任何想法吗?

4

1 回答 1

1

您不应覆盖 Widget 类的 onAttach() 方法。如果您想在附加小部件的情况下做某事,请覆盖 onLoad 方法。

  /**
   * This method is called immediately after a widget becomes attached to the
   * browser's document.
   */
  protected void onLoad() {
      enableToggleSwitch();
  }

试试这个。

如果这不能解决您的问题,您可以尝试使用调度程序:

    Scheduler.get().scheduleDeferred(new ScheduledCommand() {
        @Override
        public void execute() {
            enableToggleSwitch();
        }
    });
于 2013-11-15T06:58:15.787 回答