从JQuery 1.5.2到Jquery 1.6或更高版本的冲突

时间:2011-11-23 15:37:42

标签: jquery version conflict 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 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,但在我的情况下,我使用像“backgroundPosition:'+ = 1350px 0px'”之类的东西来设置背景的X轴,出于某种原因,一旦我转到jQuery 1.6,它就停止了工作.2 ......我所有的其他动画实例都在同一块上工作正常。

最后(在长时间的调试会话之后),我注意到如果我从调用中删除了Y轴值,它就可以了。所以“backgroundPosition:'+ = 1350px 0px'”不再起作用,但“backgroundPosition:'+ = 1350px'”有效。奇怪的是,它甚至不会向你抛出错误,动画确实会处理,但没有任何反应(所以,没有错误)。截至目前,我无法想象一种在Y轴上设置背景图像动画的方法。

答案 1 :(得分:0)

Martin,我建议您下载并使用DIFF工具,例如WinMerge(http://winmerge.org/),以查看jQuery本身的两个版本之间的差异。

分析更改,专门查看您在代码中使用的函数的更改。例如.animate(),. hasClass(),. high()等

我相信你会在那之后找到答案。

或者,您可以分析每个jQuery版本的更改日志。从1.5.2到1.6。