1

我的应用程序中有一个侧边栏,可以通过切换按钮隐藏/显示。它只是在“body”上切换一个类,为内容区域添加一些边距并隐藏/显示侧边栏。问题是内容区域在切换时没有调整其子内容的大小。一旦我调整浏览器的大小,内容区域就会调整以适应内容,但我需要它在切换后执行此操作,而无需调整窗口大小。有没有办法触发元素大小刷新或 dom 刷新来解决这个问题?使用 Chrome 19.x。

 $('#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 中,您必须调整浏览器的大小才能实现它有更多的空间。在火狐中工作。

4

3 回答 3

7

您可以在点击处理程序中触发调整大小,例如:

$(window).trigger('resize')
于 2012-06-12T21:48:42.307 回答
2

我在这里回答的解决方法适用于您的情况。

这是一个快速演示:http: //jsbin.com/amakex

它适用于 Chrome 和 Safari(不出所料,您的原始演示也不适用于 Safari)。

于 2012-06-13T00:23:13.667 回答
1

你说 - “但我需要它在切换后执行此操作而无需调整窗口大小”。您可以使用 jquery 回调来做到这一点

于 2012-06-12T22:02:48.103 回答