您好,我正在使用流程面板的焦点和模糊处理程序来添加轮廓。但是,鉴于代码,我遇到了一些奇怪的行为:
panel.addDomHandler(new FocusHandler() {
@Override
public void onFocus(FocusEvent focusEvent) {
panel.addStyleName("FOOSTYLE");
}
}, FocusEvent.getType());
panel.addDomHandler(new BlurHandler() {
FlowPanel _panel = focusPanel;
boolean init = false;
@Override
public void onBlur(BlurEvent blurEvent) {
console.log("Do Blur");
panel.removeStyleName("FOOSTYLE");
}
}, BlurEvent.getType());
模糊处理程序中的removeStyleName()似乎是无缘无故被调用的,还要注意日志,当随机模糊处理程序被调用时,它甚至不会被执行,如果有的话。
有什么建议吗?
最佳答案
要处理焦点和模糊事件,您应该使用 FocusPanel
。它实现了HasFocusHandlers
和 HasBlurHandlers
因此您可以调用 addFocusHandler()
和 addBlurHandler()
而不是低级 addDomHandler()
方法。
如果您需要使用FlowPanel
来布局小部件,您可以将其添加到FocusPanel
。
关于java - GWT 奇怪的 onblur 处理程序行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56626462/