2012-10-03 24 views
13

這是被錯誤地關閉問題的重新做:jQuery 1.8 outer Height/Width not working的jQuery 1.8.2 +非流動jQuery UI的= outerWidth和outerHeight破

我打了同樣的問題。 outerWidthouterHeight,現在返回jQuery對象而不是數字。

我們使用2012年1月10日發佈的jQuery UI 1.8.17。它不是一個超級老版本,所以我有一種感覺,其他人會看到這一點。由於一些糟糕的jQuery UI插件,我們被鎖定在這個版本中,所以升級目前不是一種選擇。

如果我找到解決方案,我會回答這個問題。

這裏有一個小提琴展示問題

更新(在「管理資源」加入jQuery UI的版本)http://jsfiddle.net/delvarworld/yxDHu/:這是因爲這一行的jQuery UI:

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

被誤觸發jQuery的這個條件1.8.2:

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

,因爲即使size是不確定的,檢查是arguments.length。可鏈式在這裏應該是錯誤的。你可以通過不確定的,它仍然會論點長度對象1.需要有人在他們的JS讀了;)

+1

錯誤打開:http://bugs.jquery.com/ticket/12647 –

+0

+1重開的問題。根據http://api.jquery.com/outerHeight/'includeMargin'是一個可選參數,但如果沒有設置爲真/假它仍然(jquery的1.8.3)返回元件。根據問題, – roberkules

回答

8

一個簡單的解決方案似乎只是路過的false

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

或者,真的,如果你想利潤率,但如果你通過了真實,看起來你不會有鼓勵克服了這個錯誤。

+0

這看起來像一個粗略的解決方案。我不得不在每個jQueryUI插件中修改每個outerWidth/outerHeight調用,以在true不存在時傳遞false。真正的問題是,jQueryUI的重寫方法設計得不夠好(如OP的版本)。因此,正確的解決方案應該用更智能的邏輯修改jQueryUI的擴展 - 解決問題而不是其症狀。 – Tom

2

我建議同時升級您的jQuery和jQuery UI包。 1.8.1和1.8.2特別解決了與outerWidth/outerHeight有關的問題,而jQuery UI當然需要保持同步。

查看該公告更改日誌以供參考:

http://blog.jquery.com/

http://blog.jqueryui.com/

+0

無法升級。在jQuery應該是向下兼容的,這是一個問題 –

+0

如果你讀了博客 - jQuery的1.8曾與outerWidth/outerHeight問題。 http://blog.jquery.com/2012/08/30/jquery-1-8-1-released/嘗試升級jquery本身到1.8.2,看看是否有幫助。 – Joshua

+0

我們正在使用1.8.2 :(更新問題 –

6

看起來像是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/

+1

我遇到了jQuery 1.8.2和jQuery UI 1.8.17的問題 - 導致Foundation Orbit滑塊不能滑動。花了我一會兒才弄清楚outerWidth()壞了 - 升級到最新的jQuery UI 1.10.0解決了這個問題。 – rkallensee

+0

同意。通過http://bugs.jquery.com/ticket/12293: 「請升級jqueryUI到1.8.22,因爲這是一個兼容jQuery 1.8」 –

+0

我同意rkallensee - 這是一個巨大的痛苦診斷。 – Tom