2010-07-18 3 views
1

Я пытаюсь использовать jQuery UI для анимирования перехода по форме, а код работает правильно в Firefox и Chrome, в IE8 возникает ошибка Javascript.jQuery UI switchClass не работает под IE8

Я использую JQuery-UI-1.8.2.custom.min.js и выдаваемая ошибка является:

Message: 'end.0' is null or not an object - Line: 819 - Char: 6 

Мой CSS:

.formfield { 
    background-color: White; 
    border: none; 
    padding: 5px; 
    width: 90%; 
    overflow: hidden; 
    margin: 0px; 
} 

.formfieldselected { 
    background-color: MintCream; 
    border: none; 
    padding: 5px; 
    margin: 0px; 
    overflow: hidden; 
} 

Javascript:

$(document).ready(function() 
{ 
$(":input").each(function() 
    { 
    var myInput = $(this); 
    if (this.type == 'submit') 
    { 
     return; 
    } 
    myInput.bind('focusin', function() 
    { 
     $('#' + this.id + 'field').removeAttr('style'); // Reset Style if broken 
     $('#' + this.id + 'field').switchClass('formfield', 'formfieldselected', 300); 
     $('#' + this.id + 'helpbox').removeClass('helpboxhidden').addClass('helpboxvisible'); 
    }); 
    myInput.bind('focusout', function() 
    { 
     $('#' + this.id + 'field').switchClass('formfieldselected', 'formfield', 300); 
     $('#' + this.id + 'helpbox').removeClass('helpboxvisible').addClass('helpboxhidden'); 
    }); 
    }); 
... 
} 

И, наконец, один из элементов, над которым этот код должен работать:

<DIV id="eventnamefield" class="formfield"> 
    <DIV id="eventnamehelpbox" class="helpboxhidden"> 
    This name is used throughout the system to refer to this event and is shown to Attendees 
    </DIV> 
    <label for="eventname" class="adminformlabel">Event Name:</label> 
    <br /> 
    <input type="text" name="eventname" value="" id="eventname" maxlength="50" class="adminforminput" /> 
</DIV> 
+0

Извините за фиктивный ответ, который я удалил. Я полностью не понял ваш код :-) Однако я могу предложить вам открыть IE8 «Инструменты разработчика», и пусть отладчик покажет вам больше об ошибке. – Pointy

+0

@Pointy Все, что говорит мне, что ошибка где-то в jQuery UI сама. и что b.end действительно установлен в Undefined. Кроме того, я думаю, что это происходит, возможно, во время некоторой попытки изменить размер объекта. – Nidonocu

+0

А, это боль, когда это происходит. Возможно, однако вы можете найти трассировку стека и найти что-то в своем коде. Библиотеки jQuery не слишком осторожны в обработке таких ошибок, я подозреваю, что по соображениям производительности. – Pointy

ответ

3

Найден ответ.

Оказывается, пользовательский интерфейс jQuery под IE не может обрабатывать цвета, на которые ссылается имя. Исправлена ​​проблема с изменением цветов на их шестнадцатеричные коды в CSS.

+0

В дополнение, если вы вообще не добавляете какой-либо цвет фона и оставьте его по умолчанию белым, эта проблема также возникает. У меня была такая же проблема, когда я не определял фоновый цвет (даже цвет, на который ссылается имя), но когда я добавил белый цвет #FFF в качестве фонового цвета по умолчанию для всех необходимых элементов, он решил эту проблему для меня. – Anthony

Смежные вопросы