Конфликт от JQuery 1.5.2 до Jquery 1.6 или выше
У меня проблема с этим кодом, и я не могу найти проблему. Он работает с JQuery 1.5.2 и ниже, но не с JQuery 1.6 и выше.
Вот код и спасибо за вашу помощь!
$(document).ready(function () {
$(".selected").stop().animate({'backgroundPosition':'(0 -28)'}, {duration:200});
$('#ver li a').hover(
function ()
{
if (!($(this).hasClass("selected")))
{
height = $(this).height() * (1);
$(this).stop().animate({'backgroundPosition':'(0 ' + -height + ')'}, {duration:200});
}
},
function ()
{
if (!($(this).hasClass("selected")))
{
$(this).stop().animate({'backgroundPosition':'(0 0)'}, {duration:200});
}
}
);
});
2 ответа
Я столкнулся с подобной проблемой, но в моем случае я анимировал только ось X фона, используя что-то вроде "backgroundPosition: '+=1350px 0px'", по какой-то причине это перестало работать, как только я перешел на jQuery 1.6.2... Все мои другие живые экземпляры работали нормально, в том же блоке.
В конце (после продолжительного сеанса отладки) я заметил, что если я удалил значение Y-оси из вызова, это сработало. поэтому "backgroundPosition: '+ = 1350px 0px'" больше не работает, но работает "backgroundPosition: '+=1350px'". Странно то, что он даже не выдает ошибку, анимация обрабатывает, но ничего не происходит (так что ошибки нет). На данный момент я не могу придумать, как анимировать фоновое изображение по оси Y.
Мартин, я рекомендую вам загрузить и использовать инструмент DIFF, такой как WinMerge (http://winmerge.org/), чтобы увидеть различия между двумя версиями самого jQuery.
Анализируйте изменения, обращая особое внимание на изменения в функциях, которые вы используете в своем коде. Например.animate(), .hasClass(), .height() и т. Д.
Я верю, что вы найдете ответ после этого.
Кроме того, вы можете проанализировать журналы изменений для каждой из версий jQuery. от 1.5.2 до 1.6.