簡體   English   中英

懸停DIV時文本框失去焦點

[英]Text box loses focus when DIV is hovered

我有一個問題:當我在建議文本框中輸入文本時,會出現彈出面板。 但是,當用戶將鼠標懸停在帶有建議的彈出面板上時,文本框將失去焦點。

我應該怎么做才能避免失去焦點?

具有相同行為的示例: http : //demo.raibledesigns.com/gwt-autocomplete/

謝謝你的幫助。

更新1

正在顯示的SuggestionMenu擴展了MenuBar ,它設置了所有菜單項的焦點。

void itemOver(MenuItem item, boolean focus) {
    if (item == null) {
      // Don't clear selection if the currently selected item's menu is showing.
      if ((selectedItem != null)
          && (shownChildMenu == selectedItem.getSubMenu())) {
        return;
      }
    }

    // Style the item selected when the mouse enters.
    selectItem(item);
    if (focus) {
      focus();
    }

    // If child menus are being shown, or this menu is itself
    // a child menu, automatically show an item's child menu
    // when the mouse enters.
    if (item != null) {
      if ((shownChildMenu != null) || (parentMenu != null) || autoOpen) {
        doItemAction(item, false);
      }
    }
  }

很明顯,我無法解決失去的焦點。 現在的問題是-如何使按下退格鍵或任何鍵集中在編輯框上?

提前致謝

我想這是您的代碼? 還是這是來自gwt的片段?

我的猜測是這是您的自定義代碼...在這種情況下,您不應該將元素放在樣式上,而應該附加一個處理程序...

public HandlerRegistration addMouseOutHandler(MouseOutHandler handler) {
  return this.addDomHandler(handler, MouseOutEvent.getType());
}
public HandlerRegistration addMouseOverHandler(MouseOverHandler handler) {
  return this.addDomHandler(handler, MouseOverEvent.getType());
}


element.addMouseOutHandler(new MouseOutHandler() {
  public void onMouseOut(MouseOutEvent event) {
    element.removeStyleName(HEADER_STYLE_HOVERING);
  }
});

element.addMouseOverHandler(new MouseOverHandler() {
  public void onMouseOver(MouseOverEvent event) {
    element.addStyleName(HEADER_STYLE_HOVERING);
  }

});

只需將元素替換為要附加處理程序的元素即可。

這對你有幫助嗎?

我發現了問題。 我使用了GWT 1.7.0。 -它的源代碼中包含focus()調用。

通過更新到GWT v2可以解決此問題。

感謝markovuksanovic的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM