Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Не работает меню (https://javascript.ru/forum/css-html-internet-explorer/9564-ne-rabotaet-menyu.html)

exec 24.05.2010 17:43

Не работает меню
 
Почему IE не хочет хавать этот код?

(function () {
	var nodes = document.getElementById('menu').getElementsByTagName('a');
	for (var i = 0; i < nodes.length; i++) {
		nodes[i].onmouseover = function () {
			if (this.nextSibling.nextSibling.className == 'sbc') {
				document.getElementById('submenu').innerHTML = this.nextSibling.nextSibling.innerHTML;
			} else {
				document.getElementById('submenu').innerHTML = '';
			}
		}
	}
})();


В самом меню сначала прописаны ссылки, а за ними — скрытый див с содержимым подменю, содержимое которого вставляется чуть ниже самого меню при наводке мыши на пункт.

Kolyaj 24.05.2010 17:56

Цитата:

Сообщение от exec
this.nextSibling.nextSibling

Вот на это не стоит надеяться.

exec 24.05.2010 18:05

Kolyaj, а как тогда писать нужно?

Kolyaj 24.05.2010 18:09

Проверять у nextSibling'ов nodeType (IE пробелы между тегами учитывает), а лучше заверстать по другому, чтобы легче было найти нужный элемент.

exec 24.05.2010 18:27

Решил проблему по-другому — для IE ставлю this.nextSibling, а для нормальных браузеров — this.nextSibling.nextSibling, всё работает.
Спасибо за наводку.

Kolyaj 24.05.2010 18:44

Потом по какой-то причине пробелы между тегами у вас пропадут и скрипт перестанет работать.

exec 24.05.2010 19:01

Не пропадут.

Kolyaj 25.05.2010 09:25

Пропадут. Причем когда ты будешь в отпуске :)

exec 25.05.2010 10:09

У меня нет отпусков.


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