2011-12-22 4 views
-1

Если вы заходите на этот сайт http://rochesterwaterskishow.com/staging, наведите указатель мыши на ссылку about в FF или Chrome, и вы увидите, что всплывающее меню. Когда вы делаете то же самое в IE8, меню не отображается. Я не проверял IE7.Небольшая ошибка jquery в IE8

Что вызывает меню, которое не должно отображаться в IE8?

JQuery: достаточно

$('#flyout').hover(function() { 
     $(this).children('div').show(); 
    }, function() { 
     $(this).children('div').hide(); 
    }); 
+0

Эффект слайдера классный (я бы его не использовал) –

+0

попробуйте изменить это «$ (« # вылет »). delegate (« * »,« hover », f, g);' – bevacqua

ответ

1

Funnily, ошибка не в меню или в вашем выражении JQuery на всех. Это в строке выше:

<h1><a href="http://rochesterwaterskishow.com/staging/index.php/site/index"><img src="http://rochesterwaterskishow.com/staging/assets/images/RWSStandardLogo.gif" class="logo" /></h1> 

Там нет закрытия </a> здесь, что делает IE бросить шаткий. Исправьте это, и вам должно быть хорошо идти.

+0

Хороший улов. Наверное, мне просто нужно было посмотреть несколько строк. Благодарю. – Catfish

+0

Единственный способ, который я заметил, это открыть IE8 и вручную удалить правило CSS для 'display: none'. Когда это сработало хорошо, я знал, что проблема должна быть связана с разбором DOM и читать назад, пока я не найду что-то недействительное. Если бы ручное удаление правила CSS не работало, я бы знал, что проблема была в вашем jQuery. – Interrobang

0

Проблема в том, что $(this).children('div') не работает в IE8. Я не знаю, почему (редактирование: я думаю, это из-за незакрытого тега <a>, упомянутого в сообщении Interrobang).

Я считаю, что это должно работать:

$('#flyout').hover(function() { 
    $(this).find('div').show(); 
}, function() { 
    $(this).find('div').hide(); 
}); 

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

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