2017-08-14 137 views
0

我試圖禁用雙擊一個幫助標籤,它是打開幫助窗口的錨點。
<p:a id="helpClick" onClick="help()"> <label value="Help" style="color:#FFFFFF;" /> </p:a>
當onClick()事件觸發一次時,無論是通過鼠標單擊還是點觸觸摸板一次,都會調用help()方法。ZKOSS:onClick()對鼠標點擊和鼠標點擊的工作方式不同

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()捕獲事件。 我試圖禁用標籤,一旦它被點擊並打開窗口。只有在窗戶關閉後,我才能啓用標籤。
當我使用鼠標點擊時,這是完全正常的,但當我使用水龍頭時沒有。
隨着輕敲,標籤正在多次點擊,而不是鼠標點擊的情況。

回答

0

沒有看到代碼,很難提供建議,但也許你可以捕捉到onDoubleClick事件,而忽略它或將其轉發到相同的聽衆爲您的onClick事件。
... forward="onClick=onHelpClick,onDoubleClick=onHelpClick" ...

問題編輯後:
這聽起來像一個錯誤,如果你可以雙擊一個已禁用的組件。你可以嘗試的一件事是設置你的鏈接到autodisable<p:a id="helpClick" onClick="help()" autodisable="self">根據A component documentation

+0

我已經通過添加使用的代碼更新了問題。 –

+0

我首先嚐試了autoDisable。但它給了我這個錯誤:**方法setAutodisable沒有找到類org.zkoss.zul.A ** –

+0

@AvinashK您使用的是哪個版本的zk?我查了一下,我的版本有A.setAutodisable(String)。另外,'p:'是什麼,是另一個命名空間? –