2010-02-24 41 views
1

我寫了一個jQuery插件,它可以很好地適用於1.4.1以下的所有版本。現在,jQuery已更新至1.4.2完全停止工作。我有一堆單元測試,並且在最後一個版本中只有300+通過了32。更新jQuery到1.4.2後的插件損壞

我檢查了1.4.2更新日誌,但它說的是有一些性能改進,就是這樣。

這裏的更新日誌:

Performance Improvements: 
· The performance of calling .bind() and .unbind(). 
· The performance of .empty(), .remove(), and .html(). 
· The performance of inserting a single DOM node into a document. 
· The performace of calling $("body"). 

Bug Fixes: 
· Remove existing foo[] when traditional = false in param. 
· Problem with getJSON callback does not firing. 
· Removed the Need for setArray. 

我不使用任何的bug修復部分中提到的部分。此版本中是否有其他更改可能會破壞我的代碼?我真的不知道從哪裏開始調試。

我的插件代碼是可用的here和失敗的單元測試可以發現here。再次將jQuery更改爲1.4.1將使所有單元測試通過。

+0

試圖使用該插件時是否收到任何錯誤消息?什麼樣的測試失敗? – 2010-02-24 10:23:35

+0

我沒有收到任何錯誤/警告。我已經測試了單元測試和插件本身對JSLint,以便發現沒有缺少分號或其他問題。在大多數瀏覽器中幾乎所有的測試都失敗這在IE中稍微好一點,但插件仍然不可用。我注意到大多數刪除插件功能的測試仍然可以,但可能是因爲這些功能未正確啓用。 – RaYell 2010-02-24 10:30:44

回答

1

我會建議檢查您撥打$.data()來檢索值的位置 - 現在它會返回nullundefined,正如我在mu插件停止工作時所測試的那樣。

+0

不,我不這樣認爲。它之前正在返回'undefined',現在就這樣做了。 – RaYell 2010-02-25 10:38:42

+0

關於第二個想法,這不完全是問題,但它很接近。我使用的是'$ .data()'而不是'$(selector).data()',如果該值不存在,則第二個方法返回'null'。 – RaYell 2010-02-25 10:56:33