2012-06-12 44 views
1

我的應用程序中有一個側欄,可以通過切換按鈕隱藏/顯示。它簡單地切換「body」上的一個類,該類爲內容區添加了一些餘量,並隱藏/顯示邊欄。麻煩的是,當它被切換時,內容區域沒有調整其子內容的大小。一旦我調整了瀏覽器的大小,內容區域將調整爲適合內容,但我需要它在切換後執行此操作,而無需調整窗口大小。有沒有辦法觸發元素大小刷新或刷新來解決這個問題?使用Chrome 19.x.Force dom在JavaScript中重新加載/調整大小

$('#sidebar-toggle').click(function(event) { 
    event.preventDefault(); 
    $('body').toggleClass('with-sidebar-left'); 
}); 

編輯:好像它可能是一個Webkit的問題。在Firefox中正常工作。

編輯2:設置簡化構建在以下位置:

https://dl.dropbox.com/u/189605/misc/build-test/grid.html

你可以看到框是浮動:左,當你使用的小箭頭按鈕最小化工具條,它應調整權利,讓更多的盒子適合。在Webkit中,您必須調整瀏覽器大小以實現更大的空間。適用於Firefox。

+3

你能提供一個JSFiddle.net的例子嗎? – hafichuk

+0

你確定'$('sidebar-toggle')'是正確的嗎?也許它應該是'$('#sidebar-toggle')'而不是? – thirtydot

+0

@thirtydot是的,它應該,但這不是問題。錯字。 – typeoneerror

回答

5

你可能只是引發調整大小在您單擊處理程序,如:

$(window).trigger('resize') 
+0

可以直接調用偵聽器函數,而不是觸發事件。不幸的是, – MaxArt

+0

沒有效果。那是我嘗試的第一件事。 – typeoneerror

+0

@MaxArt如果有多個偵聽器函數,那麼最好觸發事件。這樣他們都開火了。 –

1

你說 - 「但我需要它來切換之後做到這一點,而不需要調整窗口的大小」。您可以使用jQuery的回調做到這一點

相關問題