Не работает скрипт JQuery в IE7
Доброго времени суток всем. Ума не приложу, почему скрипт не работает в IE7. Стандартные свойства и методы использую.
Вот код (если не очень грамотно написан, не ругайте, но буду рад конструктивной критике:)) $("#popupmenu > li").live("click", function(event) { event.preventDefault(); if ($(this).next('ul').length) { if ( ($(this).attr('class') == 'active') || ($(this).attr('class') == 'element-1 active')) { $(this).next('ul').slideUp(500, function() { $(this).prev('li').removeClass('active'); }); $("#popupmenu li.active").next('ul').slideUp(500, function() { $(this).prev('li').removeClass('active'); }); $("#popupmenu li.active").removeClass('active'); } else { $("#popupmenu li.active").next('ul').slideUp(500, function() { $(this).prev('li').removeClass('active'); }); $("#popupmenu li.active").removeClass('active'); $(this).addClass('active'); $(this).next('ul').slideDown(500); } } else { $("#popupmenu li.active").next('ul').slideUp(500, function() { $(this).prev('li').removeClass('active'); }); $(this).addClass('active'); } }); Заранее спасибо за ответ. |
Забыл добавить, addClass работает. Слайды и ремувкласс - нет.
|
удалил по совету Devote
|
Цитата:
|
Кое что выяснил.
Не работает проверка $(this).next('ul').length возвращает ноль. В других браузерах возвращает 1. Тег ul за тегом li существует. Вот код html <li class="element-1"><a href="#">Машины</a></li> <ul> <li><a href="#">Третий уровень</a></li> <ul> <li><a href="#">Тойота</a></li> <li><a href="#">Тойота</a></li> <li><a href="#">Тойота</a></li> </ul> <li><a href="#">Пежо</a></li> <li><a href="#">Ауди</a></li> </ul> Располагается сразу за ним, но почему-то не срабатывает. Может у кого-то есть соображения на этот счет? Почему-то IE считает последующим элементом следующий li с таким же стилем, а не ul. Может это быть из-за того, что ul по умолчанию display:none ? |
Цитата:
|
Часовой пояс GMT +3, время: 14:55. |