我没有从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属性(这就解释了为什么没有发生)。有关如何修改样式的任何建议仍然欢迎!
答案 0 :(得分:1)
我很确定会尝试设置元素的width
属性(对于您正在处理的元素类型可能不存在), NOT CSS { {1}}属性。
您可能正在寻找setStyleAttribute
。
答案 1 :(得分:1)
答案 2 :(得分:1)
在GWT的更高版本中,您可以使用getElement().getStyle().setWidth(100, Unit.PX)
,这可以为DOM类中基于String的方法提供一些额外的编译时正确性。使用getElement().getStyle().clearWidth()
将宽度设置回auto
。