Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.04.2008, 15:30
Профессор
Отправить личное сообщение для lancer Посмотреть профиль Найти все сообщения от lancer
 
Регистрация: 30.01.2008
Сообщений: 230

IE6 и parentNode.parentNode
Во всех бразуерах пункты меню открывается, в IE нет. Так стало после того как я положил головной пункт в <h2>
и соответственно в скрипте стал подниматься на одного родителя выше: parentNode.parentNode.childNodes[2], а не как раньше parentNode.childNodes[2]. Очевидно, что в IE до скрипта дело доходит, но условия if не выполняются. В нижней панели в левом углул в IE написано: ошибка на странице.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Error in IE</title>
	
	<style type="text/css">
		#openingMenu li ul{display:none;}
	</style>
	
	<script type="text/javascript">
		function uler()
		{
			if(this.parentNode.parentNode.childNodes[2].style.display=="none" || this.parentNode.parentNode.childNodes[2].style.display=="")
			{
				this.style.fontWeight="bold";
				this.parentNode.parentNode.childNodes[2].style.display="block";
			}
			else
			{
				this.style.fontWeight="normal";
				this.parentNode.parentNode.childNodes[2].style.display="none";
			}
		}	
	</script>

</head>

<body>
	<ul id="openingMenu">
		<li><h2><a href="#" onclick="uler.apply(this,[]); return false">Скважины водоснабжения</a></h2>
			<ul>
				<li><a href='#'>Пункт номер 1</a></li>
				<li><a href='#'>Пункт номер 2</a></li>
				<li><a href='#'>Пункт номер 3</a></li>
			</ul>
		</li>

        <li><h2><a href="#" onclick="uler.apply(this,[]); return false">Установки</a></h2>
			<ul>
				<li><a href='#'>Пункт номер 1</a></li>
				<li><a href='#'>Пункт номер 2</a></li>
				<li><a href='#'>Пункт номер 3</a></li>
			</ul>
	    </li>
	</ul>			
</body>
</html>

Последний раз редактировалось lancer, 09.04.2008 в 15:34.
Ответить с цитированием
  #2 (permalink)  
Старый 09.04.2008, 17:12
Профессор
Отправить личное сообщение для lancer Посмотреть профиль Найти все сообщения от lancer
 
Регистрация: 30.01.2008
Сообщений: 230

Решена проблема.
Надо обращаться к 1-ому ребенку, т.к. нумерация идет с нуля, а все это дело работало в фоксе и опере, т.к. там перенос строки тоже считается за ребенка.
Ответить с цитированием
  #3 (permalink)  
Старый 09.04.2008, 19:08
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

Цитата:
parentNode.parentNode
не надо так делать. лучше пропиши специальные классы и специальной функцией ищи элементы с нужными классами.
Ответить с цитированием
  #4 (permalink)  
Старый 09.04.2008, 19:10
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

а вообще, просмотри свойства nodeName всех детей и всё поймёшь...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
первый опыт jquery. Вопросы. Titto jQuery 0 17.09.2008 10:32
Как сделать функцию типа toDataUrl для рисунка в ie6 ? Олег Общие вопросы Javascript 2 14.09.2008 00:06
new java.lang.String под IE6 diclofoss Общие вопросы Javascript 6 18.04.2008 02:06