2012-03-28 64 views
2

我知道,還有一些與此問題有關的其他問題。 但是沒有答案有正確的解決方案。 有沒有一種方法可以在gwt中顯示禁用元素的工具提示?特別是對於按鈕。 每個禁用的按鈕,不再監聽mouseevents。但我想顯示禁用按鈕的工具提示,爲什麼他們被禁用。我正在瀏覽整個網頁,但我什麼都沒發現!GWT中禁用元素(按鈕)的工具提示

+0

這個問題經常被問到,但主要問題是工具提示是由瀏覽器處理的,並不是所有的瀏覽器都顯示禁用元素的工具提示。 – 2012-03-28 11:53:46

回答

2

這很簡單。禁用的HTML元素不會吸收鼠標事件。無法在禁用的元素上顯示工具提示。

解決方案:

  • 擴展按鈕控件並重寫setEnabled方法只設置一個樣式,以使能時,設置爲false 出現禁用按鈕。不要調用super.setEnabled。
  • 的setEnabled時設置爲false設置一個標誌,在你的類,它的按鈕是禁用
  • 覆蓋onBrowserEvent,當你收到click事件檢查禁用標誌和函數調用Event.preventDefault()停止點擊事件處理。 (實際上有幾種方法可以解決這個問題,所以這只是一個例子)
+0

我管理它,但它仍然不完善。該按鈕看起來被禁用,但點擊樣式仍處於啓用狀態。我不知道我必須刪除(或添加)以防止出現這種情況。我認爲這是一個(buttonEl.dom.setAttribute(「aria-disabled」,「true」);)但是按鈕必須被渲染。我想我也必須覆蓋onRender方法!你怎麼看? – 2012-03-29 07:39:42

1

我想你可能會需要擴展您要顯示工具提示Button類,而對於一些相關的方法提供了一個覆蓋方法。一些建議,可以幫助...

  1. 嘗試改寫監聽器方法來看看該方法是否被觸發,即使按鈕是無效的 - 默認情況下禁用的按鈕可能只是捕獲所有的監聽器事件,而不是傳遞他們通過聽衆

  2. 嘗試啓用按鈕,但覆蓋繪畫方法將其繪製爲禁用,以便它具有禁用按鈕的外觀,但仍然像普通按鈕一樣運行。您可能需要處理一些其他的聽衆和事件在這種情況下,如捕捉任何正常的點擊和無視他們

看你怎麼去的。