Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Не работает скрипт JQuery в IE7 (https://javascript.ru/forum/css-html-internet-explorer/30616-ne-rabotaet-skript-jquery-v-ie7.html)

only_dimon 10.08.2012 01:38

Не работает скрипт 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');
		}
	});


Заранее спасибо за ответ.

only_dimon 10.08.2012 10:16

Забыл добавить, addClass работает. Слайды и ремувкласс - нет.

vadim5june 10.08.2012 10:41

удалил по совету Devote

devote 10.08.2012 13:31

Цитата:

Сообщение от vadim5june
все не смотрел но в ие

он же джуквери юзает... а в джуквери этого не нужно.

only_dimon 11.08.2012 00:12

Кое что выяснил.

Не работает проверка

$(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 ?

Deff 11.08.2012 00:29

Цитата:

Сообщение от only_dimon
но буду рад конструктивной критике

А Какие основные принципы работы меню, - что требуется добиться? И где начальный css для тегов


Часовой пояс GMT +3, время: 14:55.