2012-05-09 80 views
0

我是sencha touch的初學者,所以我有一些基本問題。在sencha touch中更改背景圖像

我在CSS中加入了背景圖像面板:

#inputPanel{ 
    background:url(../i/input-bg.png) no-repeat left top; 
} 

面板顯示每一次,我想更改背景圖片:

this.inputPanel = new Ext.form.FormPanel({ 
    cls:'panel', 
    id:'inputPanel', 
    items:[], 
    dockedItems:[], 
    listeners:{ 
     beforeshow:function(){ 
      if(showImageAAA) 
       // Change the background image to AAA 
      else 
       // Change the background image to BBB 
     }, 
    } 
}); 

有沒有什麼簡單的方法去做吧?謝謝。

回答

0

,你可以做以下

this.inputPanel = new Ext.form.FormPanel({ 
    cls:'panel', 
    id:'inputPanel', 
    items:[], 
    dockedItems:[], 
    listeners:{ 
     beforerender:function(){ 
      if(showImageAAA) 
       // Change the background image to AAA 
       this.style="background:url(../i/input-bgAAA.png) no-repeat left top;"; 
      else 
       // Change the background image to BBB 
       this.style="background:url(../i/input-bgBBB.png) no-repeat left top;"; 
     }, 
    } 
}); 

希望這有助於!

+0

謝謝Scott。請在另一個答案中看到我的意見。 – subchap

+0

第二次,如果您之前被隱藏,則應該獲取inputPanel並在get call show inputPanel中設置其樣式。 –

0

我想你可以設置面板的「style」或「bodyStyle」屬性。

+0

謝謝。你可以再詳細一點嗎? – subchap

+0

當「beforeshow」事件觸發時,會給出幾個參數:即將顯示的組件和選項對象。 http://docs.sencha.com/ext-js/4-0/#!/api/Ext.panel.Panel。因此,將該事件監聽器更改爲「beforeshow:function(panel,options)」,然後在函數中,您可以像「panel.style ='background-color:red;'」 – Miles

+0

感謝您的更新。我已經嘗試過了,但是它似乎只在第一次顯示面板時才改變樣式。如果關閉面板,請更改「showImageAAA」,然後再次打開面板,背景保持不變。但是,如果在第一次顯示面板之前更改「showImageAAA」,則會更正背景。那麼在第二次展示面板之前我應該​​做些什麼? – subchap