2010-07-13 2 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

Информация не достаточна. Покажите нам все сценарии. –

+0

Я не знаком с функцией обертки, окружающей ваш код - никогда не видел этого раньше - есть ли причина для первой функции ($) и конечной (jQuery)? переключение не выполняется, если оно просто помещено в обычную функцию $ (document) .ready? – DeaconDesperado

+0

@DeaconDesperado: это самозапускающаяся анонимная функция, которая называет себя объектом 'jQuery' в качестве параметра. Этот шаблон просто гарантирует, что '' 'привязан к' jQuery', несмотря ни на что. – jAndy

ответ

3

Включили ли вы файл jQuery перед toogle.js?

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

EDIT 2: В toogle.js добавить эту строку перед самости вызова функции:

jQuery.noConflict(); 

Даже если вы переназначение $ в функции, вы все равно нужно вызвать метод noConflict.

От: http://api.jquery.com/jQuery.noConflict/

+0

есть. он отлично работает в firefox –

+0

ли это эффект нашего скрипта, если мы включаем атрибут «language» в теге скрипта? – 2010-07-13 18:19:32

+1

@Samurai Jack: Я сомневаюсь в этом, но обычно считается неправильной практикой использования устаревших атрибутов или элементов. Хотя большинство устаревших функций все еще работают, это не значит, что он всегда будет работать. @ metal-gear-solid: см. Мое новое редактирование. –

0

Это происходит потому, что один скрипт HTTP и другой HTTPS, это вызовет проблемы безопасности с IE, когда родительская страница находится на HTTPS. Если ваша родительская страница находится на https, вы должны иметь все на https, включая изображения и скрипты.

+0

, но он отлично работает в Firefox –

+0

@ metal-gear-solid: попробуйте это в любом случае. Internet Explorer имеет множество «функций безопасности», которые будут случайным образом разбивать материал. –

+0

firefox более правдоподобен, когда дело доходит до https, т.е. будет просто игнорировать все, что не является https, и в зависимости от конфигурации безопасности он даже не спросит – Rodrigo