如何在GWT中设置attribs?

时间:2010-06-17 14:17:07

标签: java gwt coding-style width

我没有从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());
  }
}

(我知道改变宽度的方法比直接设置style属性要少,但我现在不关心css。)

编辑:糟糕,只是意识到宽度不会改变样式宽度,只需在标签中添加一个width属性(这就解释了为什么没有发生)。有关如何修改样式的任何建议仍然欢迎!

3 个答案:

答案 0 :(得分:1)

我很确定会尝试设置元素的width属性(对于您正在处理的元素类型可能不存在), NOT CSS { {1}}属性。

您可能正在寻找setStyleAttribute

答案 1 :(得分:1)

答案 2 :(得分:1)

在GWT的更高版本中,您可以使用getElement().getStyle().setWidth(100, Unit.PX),这可以为DOM类中基于String的方法提供一些额外的编译时正确性。使用getElement().getStyle().clearWidth()将宽度设置回auto