java - GWT 奇怪的 onblur 处理程序行为
问题描述
嗨,我正在为流面板使用焦点和模糊处理程序来添加轮廓。但是,鉴于代码,我得到了一些奇怪的行为:
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()
andaddBlurHandler()
而不是低级addDomHandler()
方法。
如果您需要使用FlowPanel
来布置您的小部件,您可以将其添加到FocusPanel
.
推荐阅读
- android - Xamarin Android 应用程序未使用 BlackBerry UEM 调用 SOAP Web 服务
- asp.net - 您能否使用 Visual Studio Web 发布到 Azure Web App 部署单个 aspx.cs 文件(Azure 运行时问题)
- python - 比较 2 个数据框,找到匹配的行,然后对一列求和
- azure - 使用 Azure DevOps (AWS ToolKit) 将文件从 s3 下载到 ec2 实例
- android - 应用程序描述未在 Play 商店中更新
- json - 如何从在 BigQuery 中没有键的 JSON 中读取数据?
- node.js - MongoDb:我想从一个数组中返回多次出现的所有值。不知道该怎么做
- ibm-mq - IBMMQ,在什么场景下 MQMD.MsgType=1 会被解释为 MQMT_SYSTEM_FIRST 而不是 MQMT_REQUEST
- python - 代码没有像我期望的那样交换案例
- java - 单独片段中的按钮单击侦听器不起作用?