'jQuery'是IE7中未定义的错误

时间:2010-07-13 18:03:34

标签: javascript jquery xhtml

    <head>
    <meta name="description" content="Directory" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"> </script>

 <script type="text/javascript" src="https://sitename.com/javascripts/toggle.js" language="javascript"></script>

    </head>

这是IE 7中显示的错误。我没有在IE8和6中检查过。

Message: 'jQuery' is undefined
Line: 1
Char: 1
Code: 0
URI: https://sitename.com/javascripts/toogle.js

这是外部javascript的代码

(function($) {

     $(document).ready(function(){
          $('.divhide').hide();
                  $('#ShowFields').show();
$('.DirectoryLink') .addClass('plus');
$('#DirectoryLink') .addClass('minus');
        $('.DirectoryTextLink').click(function(){
              $(this).next().slideToggle();
        $(this).toggleClass('minus');
                return false;
   });
});


})(jQuery);

2 个答案:

答案 0 :(得分:3)

您是否在toogle.js之前添加了jQuery文件?

编辑1:另外:删除脚本标记中的language属性。不确定它是否会修复它,但它已被弃用,所以你不需要它:

<script type="text/javascript" src="https://sitename.com/javascripts/toggle.js" language="javascript"></script>

改为使用:

<script type="text/javascript" src="https://sitename.com/javascripts/toggle.js"></script>

编辑2:在toogle.js中,在自调用函数之前添加此行:

jQuery.noConflict();

即使您在函数中重新分配$,您仍可能需要调用noConflict方法。

来自:http://api.jquery.com/jQuery.noConflict/

答案 1 :(得分:0)

发生这种情况是因为一个脚本是 http 而另一个是 https ,当父页面位于https上时,这会导致IE出现安全问题。如果您的父页面位于https上,则您必须拥有https上的所有内容,包括图像和脚本。