2012-06-12 2 views
1

토글 버튼을 통해 숨겨 지거나 표시 될 수있는 사이드 바를 내 앱에 있습니다. "body"에있는 클래스를 토글하여 콘텐츠 영역에 약간의 여백을 남기고 사이드 바를 숨기거나 보여줍니다. 문제는 콘텐츠 영역이 토글되었을 때 하위 콘텐츠의 크기가 조정되지 않는다는 것입니다. 일단 브라우저의 크기를 조정하면 콘텐트 영역이 콘텐트에 맞게 조정되지만, 창 크기를 조정할 필요없이 토글 후에이를 수행해야합니다. 이 문제를 해결하기 위해 요소 크기 새로 고침 또는 DOM 새로 고침을 트리거하는 방법이 있습니까? Chrome 19.x 사용하기.자바에서 강제 DOM 재로드/크기 조정

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

편집 : 그것은 웹킷 문제가 될 수도 같은이 보인다. 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 콜백 이렇게하려면