加载jquery两次导致错误?

我有一个页面,其中正在加载 jquery其他js:
<script src="/eiv/javascripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="/eiv/javascripts/jquery.jeditable.js" type="text/javascript"></script>
<script src="/eiv/javascripts/jquery-ui-1.7.1.custom.min.js" type="text/javascript"></script>
<script src="/eiv/javascripts/corner.js" type="text/javascript"></script>
<script src="/eiv/javascripts/jquery.form.js" type="text/javascript"></script>
<script src="/eiv/javascripts/validationdate.js" type="text/javascript"></script>

我正在加载标签如下:

<%if (tabnum == 1) {%>
        <script type="text/javascript">

            $(document).ready(function(){
                $("#tabs").tabs();
                $("#tabs ul li a").corner('7px top');

               var $tabs = $('#tabs').tabs();
                $tabs.tabs('select',0);
                dateValidation();
                changeOption();
                deleteConfirmation();
        });
        </script>
<%} else if (tabnum==2) {%>
        <script type="text/javascript">

            $(document).ready(function(){
                $("#tabs").tabs();
                $("#tabs ul li a").corner('7px top');

               var $tabs = $('#tabs').tabs();
                $tabs.tabs('select',1);

                   changeOption();
                   deleteConfirmation();
        });
        </script>
<%}%>

validationdate.js是我自己构建的js,用于检查日期和其他内容.它将此作为第一行:

document.write('<script type="text/javascript" src=""jquery-1.3.2.min.js""></script>');

问题:
这是生产中的时间..这个页面出错并给出JS错误.这会导致标签不可点击.这个错误间歇性地发生,我似乎无法在我的机器上重现它.两台机器都使用IE浏览器.错误也发生在Firefox中,虽然在Firefox中没有出现小的JS错误.我甚至还有一个没有显示任何JS错误的firebug.

我怀疑错误即将发生,因为validationdate.js也在加载jquery-1.3.2.min.js.这可能是一个错误吗?

顺便说一句,我得到的JS错误是’异常被抓住但没有被抛出..线23’和第23行正在跟随

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

我真的没有选择,我愿意尝试一下.以及在我的机器上重现的方法,以便我可以解决它!

解决方法

首先回答你的问题,是的,包括jQuery两次可能导致各种问题.

要修复它,这一行:

document.write('<script type="text/javascript" src=""jquery-1.3.2.min.js""></script>');

应该包装以检查jQuery是否已经存在而不是盲目地再次包含它,如下所示:

if (typeof jQuery == 'undefined') {  
  document.write('<script type="text/javascript" src=""jquery-1.3.2.min.js""></script>');
}

然后,如果jQuery尚未在页面上,它将仅包含它.有一点需要注意,如果你使用的是jQuery的不同(可能更新)版本而不是验证代码的构建,那么有可能会有一些中断.

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...