2010-02-24 3 views
1

Я написал плагин jQuery, и он отлично работает для всех версий до 1.4.1. Теперь, когда jQuery был обновлен до 1.4.2, он полностью перестает работать. У меня есть куча модульных тестов, а в последней версии - только 32 из 300+.Плагин сломан после обновления 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. 

Я не использовать какие-либо из частей, упомянутых в разделе исправления ошибок. Были ли другие изменения в этой версии, которые могли бы нарушить мой код? Я не знаю, с чего начать отладку.

Мой код плагина доступен here и сбойные модульные тесты могут быть найдены here. Снова сменив jQuery на 1.4.1, все модульные тесты пройдут.

+0

Получаете ли вы какие-либо сообщения об ошибках при попытке использовать плагин? Какие тесты терпят неудачу? –

+0

Я не получаю никаких ошибок/предупреждений. Я тестировал как единичные тесты, так и сам плагин против JSLint, чтобы обнаружить, что отсутствующих точек с запятой или других проблем нет. В большинстве браузеров почти все тесты терпят неудачу. Это немного лучше в IE, но плагин не используется. Я заметил, что в основном тесты, которые удаляют функциональные возможности плагина, все еще в порядке, но, вероятно, потому, что эти функции не включены правильно. – RaYell

ответ

1

Я бы предложил проверить места, где вы звоните $.data(), чтобы получить значение - теперь он возвращает null или undefined, когда я тестировал, когда подключаемый модуль mu прекратил работать.

+0

Нет, я не думаю, что это так. Он возвращал 'undefined' раньше, и теперь он делает это. – RaYell

+0

Во второй мысли, это не совсем проблема, но она близка. Я использовал '$ .data()' вместо '$ (selector) .data()', а второй метод возвращает 'null', если значение не существует. – RaYell

Смежные вопросы