2010-07-13 76 views
1
<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.'jQuery的' 是在IE7未定义错误

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); 
+0

没有足够的信息。向我们展示所有脚本。 – 2010-07-13 18:07:47

+0

我不熟悉围绕代码的包装函数 - 以前从未见过 - 是否有第一个函数($)和尾随(jQuery)的原因?如果只是放在常规的$(document).ready函数中,切换不执行? – DeaconDesperado 2010-07-13 18:08:02

+0

@DeaconDesperado:这是一个自我调用的匿名函数,它以'jQuery'对象作为参数调用自身。无论如何,该模式只是确保'$'绑定到'jQuery'。 – jAndy 2010-07-13 18:10:04

回答

3

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

编辑1:另外:摆脱脚本标记中的语言属性。不知道是否将修复它,但它反正过时,所以你并不需要它:

<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/

+0

是的。它在Firefox中工作正常 – 2010-07-13 18:06:24

+0

如果我们在脚本标签中包含'语言'属性,它会影响我们的脚本吗? – 2010-07-13 18:19:32

+1

@武士杰克:我对此表示怀疑,但使用不推荐使用的属性或元素通常被认为是不好的做法。尽管大多数弃用的功能仍然有效,但并不意味着它始终有效。 @ metal-gear-solid:查看我的新编辑。 – 2010-07-13 18:21:37

0

这是发生,因为一个脚本HTTP,另一个是HTTPS,这将导致与IE中的安全问题当父页面上的HTTPS。如果您的父页面位于https上,则必须在https上包含所有内容,包括图像和脚本。

+0

但它在Firefox中工作正常 – 2010-07-13 18:28:37

+0

@ metal-gear-solid:试试吧。 Internet Explorer有很多“安全功能”会随机破坏内容。 – 2010-07-13 18:33:14

+0

当谈到https时,firefox更放任,即只是忽略那些不是https的东西,根据安全配置,它甚至不会问 – Rodrigo 2010-07-13 18:35:40