Как установить attribs в GWT? - PullRequest
0 голосов
/ 17 июня 2010

Я не получаю никакого эффекта от DOM.setElementAttribute, я делаю что-то не так?

class MyListBox extends com.google.gwt.user.client.ui.ListBox {
  ....
  protected void setHoverAutoWidth() {
    addDomHandler(new MouseOverHandler() {
      public void onMouseOver(MouseOverEvent event) {
        DOM.setElementAttribute(getElement(), "width", "auto");
      }
    }, MouseOverEvent.getType());
    addDomHandler(new BlurHandler(){
      public void onBlur(BlurEvent event) {
        DOM.setElementAttribute(getElement(), "width", "100px");
      }
    }, BlurEvent.getType());
  }
}

(я знаю, что есть менее хакерские способы изменить ширину, чем установить атрибут стиля напрямую, но меня сейчас не волнует css.)

Редактировать: Упс, только что понял, что ширина не меняет ширину стиля, просто добавляет атрибут ширины в тег (которыйобъясняет почему ничего не происходит).Любые предложения о том, как изменить стиль, все еще приветствуются!

Ответы [ 3 ]

1 голос
/ 17 июня 2010

Использовать DOM.setStyleAttribute

1 голос
/ 18 июня 2010

В более поздних версиях GWT вы можете использовать getElement().getStyle().setWidth(100, Unit.PX), что дает вам дополнительную корректность во время компиляции по сравнению с методами на основе строк в классе DOM. Используйте getElement().getStyle().clearWidth(), чтобы установить ширину обратно auto.

1 голос
/ 17 июня 2010

Я почти уверен, что попытается установить атрибут width элемента (который может не существовать для типа элемента, с которым вы работаете), NOT свойство CSS width.

Вы, вероятно, ищете setStyleAttribute.

...