2010-06-17 4 views
0

DOM.setElementAttribute에서 아무런 효과가 나타나지 않습니다. 제가 잘못 했나요?GWT에서 속성을 설정하는 방법은 무엇입니까?

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를 걱정하지 않는다)

편집 : 아차, 단지 너비가 스타일 너비를 변경하지 않는다는 것을 알았다면 태그에 너비 속성을 추가하기 만하면됩니다 (이는 아무 일도 일어나지 않는 이유를 설명합니다). 스타일을 수정하는 방법에 대한 제안은 언제나 환영합니다!

답변

1

나는 (작업중인 요소의 유형을 위해 존재하지 않을 수 있습니다) 요소의 width 속성 하지 CSS의 width 속성을 설정하려고 시도하는 확신합니다.

아마도 setStyleAttribute을 찾고있을 것입니다.

1

당신은 DOM 클래스의 문자열 기반의 방법을 통해 당신에게 여분의 컴파일 시간의 정확성을 조금주는, getElement().getStyle().setWidth(100, Unit.PX)를 사용할 수 있습니다. getElement().getStyle().clearWidth()을 사용하여 너비를 auto으로 다시 설정하십시오.

관련 문제