2010-04-02 2 views
9

Ну, а через некоторое время почесывая голову и иду "да?" пытаясь выяснить, почему IE буду прямо сбоит при загрузке один из моих страниц, загруженных с JQuery добром, я сузил виновник этой линии

$('div#questions').hide(); 

И когда я говорю IE падают, я имею в виду, что полностью аварии, пытаясь для того, чтобы сделать свою веб-страницу бессмысленную неудачу.

Я бегу JQuery 1.4.2 и с помощью IE 8 (не проверял с другими версиями)

мой текущий обходной путь заключается в следующем:

if ($.browser.msie) { 
    window.location = "http://www.mozilla.com/en-US/products/download.html"; 
} 

По какой-то причине, я чувствую, что мои пользователи IE Однако это решение не будет очень удовлетворено.

В div в вопросе есть много контента в нем и других div, которые скрываются и отображаются снова, и все это работает просто отлично и денди, только когда гигантский родительский div скрыт, что IE переворачивается и ударяет сам.

Кто-нибудь сталкивался с этим или имел какие-либо возможные идеи о том, что происходит не так?

РЕДАКТИРОВАТЬ:

Все завернутый в $ (документ) .ready (функция() {}); И мой код является внутренним, поэтому я не могу связать его, к сожалению.

EDIT: IE 8 Код Грохот найдено

<ol class="actionHelp"> 
    <li>List the tasks (or actions) that are involved in your pattern along the top (one per column)</li> 
    <li>Put the starting point in the first column and the ending point in the last column.</li> 
    <li>To fill in the middle, simply ask: "What happens next?" If only one thing ever happens next, then it should get 100%. If 70% of the time one thing happens next, and 30% of the time another thing happens next, then put 70 in one box and 30 in the other.</li> 
    <li>Each row should add up to 100%</li> 
    <li>The last row is the exit and should not have any percentages in it.</li>     
</ol> 

Я понятия не имею, почему это вызывает проблемы в IE, но вот CSS

.actionHelp { 
    margin: 0 0 0 20px; 
} 
.actionHelp li { 
    margin: 5px 0; 
} 

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

Содержит ли jQuery + IE + элемент ol = OMG IE FAIL? Или есть обходной путь?

Это, как представляется, влияет какой-либо элемент списка со списком в стиле других, чем ни

+0

У вас есть несколько элементов с одинаковыми идентификаторами, любыми свойствами 'filter' в CSS на этом div или что-нибудь в нем? –

+7

+1 для текущего обходного пути. – SLaks

+0

@Nick, #questions - уникальный элемент – Jimmy

ответ

4

Ваша проблема, очевидно, заключается не в div#questions. Можете ли вы попробовать удалить (или прокомментировать) все содержимое div#questions и добавить каждый элемент назад по одному, пока IE не начнет сбой снова?

Как только вы нашли преступника, повторите то же самое для этого элемента, удалив все его содержимое и добавив каждый элемент обратно, после каждого тестирования.

Продолжайте делать это, пока не найдете реальный источник проблемы. Я знаю, что это довольно низкотехнологичное решение, но часто оно также самое быстрое.

+0

Отличная идея, работая над ней сейчас – Jimmy

+0

Я нашел преступника! см. последнее редактирование. – Jimmy

+0

Отлично! Рад, что смог помочь. –

0

.hide() является просто оболочкой для задания стиля элементов для display:none. Вы пробовали document.getElementById("#questions").style.display = "none", чтобы узнать, не имеет значения? Это может помочь вам определить, вызывает ли сам jQuery конфликт.

+0

Правда, я пробовал все альтернативы .hide() с jQuery, но не с чистым JavaScript-способом! Попробуем это сейчас – Jimmy

+2

К сожалению, все еще происходит сбой IE – Jimmy

+0

@Jimmy: если вы еще этого не сделали, попробуйте изменить '$ ('div # questions'). Hide();' to '$ ('div # questions'). Css («display», «none»); ' –

1

Пройдите код в отладчике IE (с недопустимым jQuery) и посмотрите, в какой строке он умирает.

0

Отключите расширения.

Это крайне маловероятно, что javascript - это ваша единственная проблема.

0

В моем случае был Fiddler ad-don причинителем сбоев IE на mshtml.dll.