2012-12-28 21 views
1

在dataview中,我改變了「繪製」 - 事件的一些DOM元素的寬度和高度。這有效,有時。有時,新值會被CSS文件的定義覆蓋。DOM似乎在「繪製」事件之後呈現?

setOverviewImages: function(e , element) { // called after "painted" event 

    var overview = this.getMyoverviewView(); 
    var newWidth = parseInt(overview.element.getWidth()/2 - 50); 
    var overviewImages = Ext.select('.myoverview-container'); 

    overviewImages.each(function(el , c , index) { 
     el.setSize(newWidth , newWidth); 
    }); 
}, 

DOM呈現時會觸發哪個事件?當你處理「秀」

回答

0

DOM應該準備好事件

http://docs.sencha.com/touch/2-1/#!/api/Ext.dataview.DataView-event-show

如果這不是你想要的,你可以使用初始化或激活也。

+1

激活和初始化來得太早了,因爲我需要視圖的實際寬度,而那些返回0. show與paint有相同的效果。它有時候不起作用......我聽說關於繪畫的問題,DOM之後發生了變化。但他們不應該。 – Michael

+0

如果你沒有找到你喜歡的任何東西,你可以使用延遲任務或延遲功能,在幾毫秒後改變寬度http://docs.sencha.com/touch/2-1/#!/api/Ext-method -defer – ThinkFloyd

相關問題