0

我有这个代码的问题,我找不到问题。它适用于 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});
            }   
        }
    );

});
4

2 回答 2

1

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

最后(经过长时间的调试会话后),我注意到如果我从调用中删除 Y 轴值,它会起作用。所以“backgroundPosition:'+=1350px 0px'”不再起作用,但是“backgroundPosition:'+=1350px'”起作用了。奇怪的是,它甚至不会向您抛出错误,动画确实会处理,但什么也没有发生(所以,没有错误)。截至目前,我无法想出一种方法来为 Y 轴上的背景图像设置动画。

于 2012-02-27T12:09:00.510 回答
0

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

分析更改,专门寻找您在代码中使用的函数的更改。例如 .animate()、.hasClass()、.height() 等。

相信之后你会找到答案。

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

于 2011-11-23T16:18:00.973 回答