我在尝试使用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()方法。
有什么想法吗?
答案 0 :(得分: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();
}
});