0

我正在尝试禁用双击作为锚点的帮助标签以打开帮助窗口。
<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() 来捕获事件。我试图在单击标签并打开窗口后禁用它。只有在窗口关闭后,我才启用标签。
当我使用鼠标点击时,这完全正常,但在我使用点击时却不行。
通过点击,标签会被多次点击,而鼠标点击则不是这样。

4

1 回答 1

0

没有看到代码很难提供建议,但也许您可以捕获onDoubleClick事件并忽略它或将其转发给与您的onClick事件相同的侦听器。
... forward="onClick=onHelpClick,onDoubleClick=onHelpClick" ...

问题编辑后:
如果您可以双击禁用的组件,这听起来像是一个错误。您可以尝试的一件事是根据A 组件文档将链接设置为自动禁用 <p:a id="helpClick" onClick="help()" autodisable="self">

于 2017-08-14T07:25:31.227 回答