2015-01-12 78 views
1

好吧,在war/MyProject.html,我有:如何在從父項中移除後加載「加載」元素?

<body> 
    <div id="loading"> 
     <div id="waitingForLoading"></div> 
      <BR/> 
     <img src="../images/loading.gif" /> 

    </div> 
... 
</body> 

MyProject.java

public class OfflineMatching implements EntryPoint { 
    @Override 
    public void onModuleLoad() { 
     // this code works fine 
     if(DOM.getElementById("loading")!=null){ 

      DOM.getElementById("loading").removeFromParent(); 
     } 


     Button myButton=new Button("Enter Main Page"); 
     RootPanel.get().add(myButton); 
     myButton.addClickHandler(new ClickHandler(){ 

      @Override 
      public void onClick(ClickEvent event) { 
       // this code does not work 
       if(DOM.getElementById("loading")==null){ 
       DOM.appendChild(RootPanel.getBodyElement(), DOM.createElement("loading")); 
       } 
      } 
     }); 
    } 
} 

所以,我有沒有做錯什麼? 爲什麼這段代碼不起作用?

// this code does not work 
      if(DOM.getElementById("loading")==null){ 
      DOM.appendChild(RootPanel.getBodyElement(), DOM.createElement("loading")); 
      } 

回答

1

DOM.createElement(String tagName)創建<tagname>元素。因此,如果您將"loading"傳遞給它,它將創建一個<loading>元素。

對於一個快速的解決方法,您可以使用RootPanel.get,然後調用在widget setVisible

// onModuleLoad: 
RootPanel.get("loading").setVisible(false); 

// onClick: 
RootPanel.get("loading").setVisible(true); 

但更好的辦法是在GWT小部件來創建裝載<div>並調用setVisible其實例,而不依賴於ID。

相關問題