Не работает скрипт 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, время: 18:15. |