【问题标题】:Combining Multiple jQuery Scripts组合多个 jQuery 脚本
【发布时间】:2011-06-14 20:40:54
【问题描述】:

我正在尝试根据我的一位朋友的绘画和绘画为他创建一个简单的作品集网站。布局相对简单,但事实证明很难实现。我在页面上有三个 jquery 脚本,每个脚本都执行特定的功能。

1) bgStretcher - 拉伸一系列背景图像以填充用户的窗口。
2) collapse - 简单的可折叠菜单系统
3)galleryview - 基本没有多余的幻灯片画廊

目前,bgstretcher 和折叠位于一个名为 nav.shtml (http://yungchoi.com/nav.shtml) 的页面上,而画廊位于 gallery.shtml(http://yungchoi.com/gallery.shtml) 上。 Seperatley 它们工作正常,但是当我通过 SSI (test.shtml) 调用导航页面时,代码似乎遇到问题并被禁用。

我发现的所有解决方案都导致在 jquery 中使用 noConflict 函数(http://stackoverflow.com/questions/2656360/use-multiple-jquery-and-jquery-ui-libraries),(http:// /hubpages.com/hub/How-to-use-jQuery_noConflict),但是每次我尝试插入它并更改我的代码时,一切都会再次混乱。我还将每个脚本的文件组织到单独的文件夹和目录中,但这也无济于事。

我的经验是图形和网页设计,所以我的编码技能不是最好的。我确实知道基础知识,但是重写 jquery 代码并不是我学过的东西,所以我可能不明白如何正确解决这个问题。如果有人能清楚而轻松地解释我需要做什么才能使这些都一起工作,我将不胜感激。

谢谢!

【问题讨论】:

    标签: javascript jquery html scripting ssi


    【解决方案1】:

    你为什么要加载 Jquery 两次?

    首先是 1.4.2 分钟的文件,然后是完整的文件?

    【讨论】:

    • 我没有意识到发生了这种情况,但我只是删除了它。不过还是不行。
    【解决方案2】:

    您的页面中仍然加载了多个版本的 jQuery。

    删除:

    <script type="text/javascript" src="support/bgstrecher/jquery-1.3.2.min.js"></script>
    

    <script src="support/collapse/jquery-1.2.1.min.js" type="text/javascript"></script>
    

    你也应该删除:

    <script type="text/javascript">
      $.noConflict();
      // Code that uses other library's $ can follow here.
    </script>
    

    & - (因为您只需要打包或解包版本,而不是两者都需要)

    <script type="text/javascript" src="galleryview/jquery.galleryview-2.1.1.js"></script>
    

    看看有没有帮助。

    如果您还打算使用其他类似于 jQuery 的库,如 MooTools、Dojo 或 Prototype,则只需要 noConflict。你不太可能需要 & 如果你这样做,你将需要重新编码以使用 jQuery 函数而不是 $。

    您遇到的问题是所有这些 jQuery 包含的内容都覆盖了该插件所附加的先前版本的 jQuery,因此当您调用它时该函数不再存在。

    【讨论】:

    • 感谢您的帮助。我已经删除了您推荐的内容,yungchoi.com/nav.shtml 的页面现在加载图库但没有任何图像。此外,由于 jquery 仅在该页面上被调用,如果我在任何没有包含画廊的新页面上调用 nav.shtml,脚本将不再工作。
    • nav.shtml 不起作用,因为您已排除 jquery-1.3.2.min.js 而未将其替换为 。您必须至少加载一个版本的 jQuery。您使用的所有插件都包括过时的 jQuery 副本。确保所有页面只引用一个版本的 jQuery,本地可用的最新版本是 galleryview 插件中包含的版本。
    • 至于未显示的画廊视图,请尝试在您的
    • Klinky,感谢所有帮助。导航现在就像您建议的那样工作。但是在尝试了你所说的之后,我仍然无法看到galleryview。我已将#gallery 添加到css,但仍然没有。有任何想法吗?它肯定会帮助我。
    • 删除 在第 60 行,你之前已经有这行了在第 8 行的页面中。如果您正在使用多个插件,请不要直接复制其文档中给出的示例,因为您只能加载 jQuery 一次。确保不要复制任何会再次重新加载 jQuery 的代码行。
    【解决方案3】:

    您仍然可以多次调用 jQuery(即使文件不在同一个目录中)。 同理,调用两次“galleryview/jquery.galleryview-2.1.1.js”(第二个文件刚刚打包)。

    顺便说一句,我的错误控制台告诉我:

    "错误:jQuery.timer 未定义 源文件:http://yungchoi.com/galleryview/jquery.timers-1.2.js 线:135"

    你确定你需要这个计时器插件吗?目前,您似乎包含了太多脚本。尝试删除所有不需要的文件(你应该只保留一个版本的jquery。但是如果你使用的某些插件不兼容,你会遇到越来越多的兼容性问题)。

    【讨论】:

    • 感谢您的建议。现在大部分问题都已修复。
    猜你喜欢
    • 2019-08-09
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多