2013-01-03 27 views
0

提前致謝。我是新來的jQuery,這是我對堆棧的第一個問題:如何在jQuery切換後調整對象的大小?

我有一個切換功能,動畫兩個div,#B,和#C,左,右:

$("#toggleNav").toggle(
    function() { 
    $("#B").stop(true).animate({ 
     left: 0 
    }, 130) 
    $("#C").stop(true).animate({ 
     left: 0 
    }, 130) 
    }, function() { 
    $("#B").stop(true).animate({ 
     left: 80 
    }, 130) 
    $("#C").stop(true).animate({ 
     left: 300 
    }, 130) 
}); 

的div#C的寬度是窗口的剩餘寬度。所以當窗口調整大小時,div #C會越來越小。

在格#C,我有一個Wijmo line chart小部件每當窗口大小即重畫,以適應DIV #C:

$(window).resize(function(){ 
    $("#wijlinechart").wijlinechart("redraw"); 
}); 

我想圖表重繪所得到的DIV #C的大小切換完成後。我想這一點,在許多其他事情:

$("#toggleNav").toggle(
    function() { 
    $("#B").stop(true).animate({ 
     left: 0 
    }, 130) 
    $("#C").stop(true).animate({ 
     left: 0 
    }, 130) 
    $("#wijlinechart").wijlinechart("redraw"); 
    }, function() { 
    $("#B").stop(true).animate({ 
     left: 80 
    }, 130) 
    $("#C").stop(true).animate({ 
     left: 300 
    }, 130) 
    $("#wijlinechart").wijlinechart("redraw"); 
}); 

此時,當DIV #C的大小時,線圖重新繪製,但它是重繪之前調整大小DIV #C的大小。因此,隨着div #C變小,圖表變大,並且隨着div #C變大,圖表變小。

如何在切換完成之前延遲重繪?或者在切換完成後調用重繪函數?

回答

1

查看.animate的回調(完成)參數。

$("#C").stop(true).animate({ 
    left: 0 
}, 130, function(){//pass a function callback to be executed when animation ends 
    $("#wijlinechart").wijlinechart("redraw"); 
}); 

同時移動redraw調用到.animate回調和預期它會奏效。

相關問題