【问题标题】:jQuery 1.8.2 + noncurrent jQuery UI = outerWidth and outerHeight brokenjQuery 1.8.2 + 非当前 jQuery UI = outerWidth 和 outerHeight 损坏
【发布时间】:2012-09-24 22:43:56
【问题描述】:

这是对错误关闭的问题的重做:jQuery 1.8 outer Height/Width not working

我遇到了同样的问题。 outerWidth 和 outerHeight 现在返回 jQuery 对象而不是数字。

我们使用的是 2012 年 1 月 10 日发布的 jQuery UI 1.8.17。它不是一个超级旧的版本,所以我感觉其他人会看到这个。由于一些糟糕的 jQuery ui 插件,我们被锁定在此版本中,因此目前无法选择升级。

如果我找到解决方案,我会回答这个问题。

这是一个演示问题的小提琴http://jsfiddle.net/delvarworld/yxDHu/(在“管理资源”中添加了 jQuery UI 版本)

更新:这是因为 jQuery UI 中的这一行:

return orig[ "outer" + name ].call( this, size );

在 jQuery 1.8.2 中错误地触发了这个条件:

var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),

因为即使size 未定义,也会检查arguments.length。 chainable 在这里应该是假的。你可以传入 undefined ,它仍然会使参数成为长度为 1 的对象。有人需要阅读他们的 JS ;)

【问题讨论】:

标签: jquery version outerwidth


【解决方案1】:

一个简单的解决方案似乎只是传入false

$(document.body).outerWidth(false);

或者,如果您需要边距,则为 true,但如果您传入 true,则看起来您不会遇到此错误。

【讨论】:

  • 这似乎是一个粗略的解决方案。当 true 不存在时,我必须修改每个 jQueryUI 插件中的每个 outerWidth/outerHeight 调用以传递 false。真正的问题是 jQueryUI 的覆盖方法设计得不够好(从 OP 版本开始)。因此,正确的解决方案应该用更智能的逻辑修改 jQueryUI 的扩展——解决问题而不是解决问题。
【解决方案2】:

看起来是 jqueryUI 问题。似乎在 1.8.22 中修复。

With jquery UI 1.8.21:http://jsfiddle.net/yVq5H/13/

With jquery UI 1.8.22 (fixed):http://jsfiddle.net/yVq5H/14/

【讨论】:

  • 我遇到了 jQuery 1.8.2 和 jQuery UI 1.8.17 的问题 - 这导致 Foundation Orbit 滑块无法滑动。我花了一段时间才发现 outerWidth() 坏了——升级到最新的 jQuery UI 1.10.0 解决了这个问题。
  • 同意。 Via bugs.jquery.com/ticket/12293 : "请将 jqueryUI 升级到 1.8.22,因为它与 jQuery 1.8 兼容"
  • 我同意 rkallensee 的观点——诊断起来非常痛苦。
【解决方案3】:

我建议同时升级你的 jQuery 和 jQuery UI 包。 1.8.1 和 1.8.2 尤其解决了与 outerWidth/outerHeight 相关的问题,当然 jQuery UI 需要保持同步。

请参阅公告上的更改日志以供参考:

http://blog.jquery.com/

http://blog.jqueryui.com/

【讨论】:

  • 无法根据问题升级。由于 jquery 应该是向后兼容的,这是一个问题
  • 如果您阅读该博客 - jquery 1.8 在 outerWidth / outerHeight 方面存在问题。 blog.jquery.com/2012/08/30/jquery-1-8-1-released 尝试将 jquery 本身升级到 1.8.2,看看是否有帮助。
猜你喜欢
  • 2014-11-20
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
  • 1970-01-01
  • 2011-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多