我正在尝试使用 jQuery resizable 调整我的 div 大小,我已经做得很好了,但是在 stop 事件之后,jQuery UI 会将我的 % 值恢复为像素值。
我在这里有一个工作示例:http://jsfiddle.net/totszwai/j60h38fy/5/
当您第一次拖动 "current" 容器时,它会正确地计算所有值,但在 stop 事件之后,jQuery UI 会更新 % 并将其更改回像素... 所以下次再次拖动它时,% 就丢失了。
如何强制 jQuery 将宽度值设置为 %?技术上我可以使用 setTimeout 这样的东西,但那太丑陋了。
而且我不想通过操纵像素来解决问题,因为我可以在设置中添加 n-个 div,并且带 % 的代码应该适用于 n-个 div。
如果您查看我的 "neighbor" div,% 就保留在那里,只有 "current" 被覆盖了。我也尝试直接操作 ui.element 以及将 ui.size.width 设置为我的 %,但都没有起作用。
更新:一种解决方法是在每次 stop 事件时存储数据,并永远不再在 start 中检查它,但是这仍然无法解决 stop 返回不正确的像素值的问题。请参见更新后的 jsFiddle:http://jsfiddle.net/totszwai/j60h38fy/6/
如果 jQuery resizable 只接受我的 % 值,一切都会按预期工作。
已解决: 好的,我接受了apaul34208
的答案,因为我确实询问了如何使用%。然而,要解决我最初想要解决的问题,我最终使用像素。如果下面的答案有帮助,请给它点赞,点击这里查看。
.resizable()
的其他答案也都无法通过(因为在保持shift键时调整大小会改变高度)。然而,这很容易通过在resizable
和stop
事件中执行以下操作来修复:$(this).css('height','')
。我fork了你的fiddle,并在此处添加了几个修复和改进:http://jsfiddle.net/8auwgazu/ - nothingisnecessary