jQuery脚本打破了另一个JS脚本

时间:2012-09-25 08:14:14

标签: php jquery

我有一个日历脚本,我从互联网上工作正常。最近,我尝试合并一个jQuery排序脚本,但我不能让两者一起工作。它可以是日历脚本,也可以是有效的排序脚本。

我没有太多的jQuery经验。我尝试过多种方式更改顺序,更改jQuery版本并注释掉一堆JS脚本,但我仍然只能得到一个或者一个或者没有一个工作。

该页面受密码保护,从数据库中提取的信息是私有的,但如果有帮助,我会尝试使用虚拟数据创建一个单独的页面;但我希望这个错误是一个明显的错误。

这是页面头:

<head>
    <title>My Page</title>

<!-- css -->
    <link rel="stylesheet" type='text/css' href="stylesheets/datatable.css"/>
    <link href="stylesheets/pagination.css" rel="stylesheet" type="text/css">
    <link rel="stylesheet" type="text/css" href="css/jquery-ui-timepicker-addon.css" />
    <link rel="stylesheet" media="all" type="text/css" href="css/Aristo.css" />

<!-- scripts -->
    <!-- [if lte IE 8]>
    <script language="javascript" type="text/javascript" src="scripts/excanvas.js"></script> <![endif] -->

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


    <script type="text/javascript" src="scripts/jquery.datatables.js"></script>
    <script type="text/javascript" src="scripts/jquery.fullcalendar.js"></script>    
    <script type="text/javascript" src="scripts/jquery.placeholder.js"></script>
    <script type="text/javascript" src="scripts/jquery.accordion.js"></script>
    <script type="text/javascript" src="scripts/jquery.tabbed.js"></script>
    <script type="text/javascript" src="scripts/application.js"></script>

    <!-- If I enable this, the calendar works but the sorting script stops working:
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
    <script type="text/javascript" src="http://code.jquery.com/ui/1.8.23/jquery-ui.min.js"></script> -->

    <script type="text/javascript" src="js/jquery-ui-timepicker-addon.js"></script>
    <script type="text/javascript" src="js/jquery-ui-sliderAccess.js"></script>
</head>

这里有明显的错误吗?我正在使用其他人的jQuery。如果有任何其他信息,我可以告诉我这可能有助于此...

2 个答案:

答案 0 :(得分:1)

问题是当您取消注释相关部件时,您正在加载jQuery库两次。这将导致第二个脚本覆盖$,因此上面的插件已经附加到它的所有功能(它们的功能是生活$对象内)。 / p>

解决您的问题的简单方法:只加载一次jQuery(最好是通过CDN),将原始库加载为第一个脚本,然后加载其插件,然后加载自己的脚本。

因此,正确的顺序应为:

<!-- Loading jQuery via Google -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>

<!-- Loading jQuery scripts -->
<script type="text/javascript" src="scripts/jquery.datatables.js"></script>
<script type="text/javascript" src="js/jquery-ui-timepicker-addon.js"></script>
<script type="text/javascript" src="js/jquery-ui-sliderAccess.js"></script>
<script type="text/javascript" src="scripts/jquery.fullcalendar.js"></script>
<script type="text/javascript" src="scripts/jquery.placeholder.js"></script>
<script type="text/javascript" src="scripts/jquery.accordion.js"></script>
<script type="text/javascript" src="scripts/jquery.tabbed.js"></script>

<script type="text/javascript" src="scripts/application.js"></script>

答案 1 :(得分:0)

您的排序脚本和日历脚本使用了2个不同版本的jQuery。我假设您的排序脚本正在提取的那个与日历(您的代码中注释掉的那个)冲突。具体做法是:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"></script>

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

互相竞争。