我在尝试使用 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() 方法。
有什么想法吗?
最佳答案
您不应重写 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();
}
});
关于java - 在 @PostConstruct 中调用 JSNI 方法 - Errai,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19987785/