【问题标题】:How do I use two different versions of jQuery side by side?如何并排使用两个不同版本的 jQuery?
【发布时间】:2011-08-24 03:00:34
【问题描述】:

我正在为工作中的 Yahoo Web Analytics 编写一个包装器。我的包装器内置了 jQuery 1.5.3,而我安装包装器的页面使用 jQuery 1.4.3。当我包含我的包装器时,他们的网站失败了,因为我猜是 jQuery 1.5.3 中更新的 Ajax 函数。

有什么方法可以在不覆盖之前包含的 jQuery 脚本的情况下包含 jQuery?


不幸的是,他们无法升级他们的页面。也不会降级我们的跟踪脚本。

【问题讨论】:

    标签: javascript jquery jquery-1.5 jquery-1.4


    【解决方案1】:
    var $yournamespece = jQuery.noConflict(true);
    // now use $yournamespace instead of $
    $yournamespace('selector')
    

    虽然我很好奇你的脚本使用了什么与他们的版本不兼容...1.5 并没有真正推出所有

    【讨论】:

    • 如果我可以问,这将如何工作?如果我的脚本已经用 jQuery 1.5.3 覆盖了 jQuëry 1.4.3,那么调用 noconflict 肯定不会让时间倒流?
    • getJSON 只是 $.ajax 的包装器,不难解决。最大的变化是 JSON.parse 在较新的版本中使用,但应该没有任何区别。
    • @Codemonkey:我不是 100% 了解 jQuery 的内部结构,但我相信它首先是在做任何事情之前将 $ 命名空间复制到另一个命名空间,这样如果你确实使用 .noConflict() ,它将自己复制到指定的命名空间并将备份复制到 $ 命名空间,有效地将其“归还”给之前的库。 api.jquery.com/jQuery.noConflict
    • 我实际上必须根据我提供的以下链接对代码进行小幅编辑,通过 true。它说:“如果有必要,我们也可以通过将 true 作为参数传递给方法来释放 jQuery 名称。这很少需要,如果我们必须这样做(例如,如果我们需要 在同一页面上使用多个版本的jQuery库),我们需要考虑到大多数插件依赖于jQuery变量的存在,在这种情况下可能无法正常运行。
    • 谢谢,很有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多