【问题标题】:Conflict from JQuery 1.5.2 to Jquery 1.6 or higher从 JQuery 1.5.2 到 Jquery 1.6 或更高版本的冲突
【发布时间】:2011-11-23 15:37:42
【问题描述】:

我对这段代码有疑问,我找不到问题所在。它适用于 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});
            }   
        }
    );

});

【问题讨论】:

  • 尝试使用 firebug 并检查您遇到的错误。
  • 你在控制台遇到什么样的 JS 错误?
  • 没有错误,它在 1.5.2 中工作,问题是代码从一个版本到另一个版本有一些变化,但我找不到那个变化。
  • 使用firebug尝试调试你的JS

标签: jquery version conflict jquery-1.6


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

    • 感谢您的回答,但该工具仅在您有其他代码要比较时才有效。我只有这段代码,我分析了变更日志,但找不到我的问题,这就是我寻求帮助的原因。
    • 您可以下载 jQuery Source for 1.5.2 和 jQuery Source 1.6 并进行比较。所有过去的版本都可以在这里找到:docs.jquery.com/Downloading_jQuery(向下滚动页面)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多