我试图禁用双击帮助标签,这是一个锚打开帮助窗口。
<p:a id="helpClick" onClick="help()"> <label value="Help" style="color:#FFFFFF;" /> </p:a>
当onClick()事件被触发一次时,鼠标单击或点击一次触控板,就会调用help()方法。
void help() {
flag = true;
this.helpClick.setDisabled(true);
Window popupWindow = null;
popupWindow = (Window) Executions.createComponents("/zul/mainHelp.zul",
null, null);
this.popupWindow.setClosable(true);
popupWindow.addEventListener("onClose", new EventListener() {
void onEvent(Event event) throws Exception {
this.helpClick.setDisabled(false);
}
});
}是我添加的代码,用于使用id helpClick处理锚标记。
当我使用鼠标点击时,这是非常好的工作。对于第一次单击,窗口将被打开,同时标签将不再接受任何单击事件。
当我尝试同样的鼠标点击(使用触摸屏),两个单一的点击被触发。
我使用了onClick()来捕获事件。我试图禁用标签,一旦它被点击,窗口被打开。只有在窗口关闭后,我才启用标签。
这是完全正常的工作,当我使用鼠标点击,但不是当我使用点击。
点击时,标签会进行多次点击,而鼠标点击则不是这种情况。
发布于 2017-08-14 07:25:31
如果没有看到代码,就很难提供建议,但也许可以捕获onDoubleClick事件并忽略它,或者将其转发给与onClick事件相同的侦听器。
... forward="onClick=onHelpClick,onDoubleClick=onHelpClick" ...
问题编辑后:
如果您可以双击禁用的组件,听起来就像一个bug。您可以尝试的一件事是将链接设置为自动禁用 <p:a id="helpClick" onClick="help()" autodisable="self"> (按组件文档 )。
https://stackoverflow.com/questions/45668992
复制相似问题