Javascript.RU

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

Childnode в функции
Ребята, помогите мне, пожалуйста!
Html вот такой:
<a>Пункт меню<img></a>


Img по умолчанию имеет display: none;

Скрипт должен по наведению мыши показывать img, по убиранию мыши его скрывать.

НА данный момент скрипт по убиранию мыши скрывает саму A. Как добраться до IMG???? Перепробовал около 50 разных вариантов, уже всю голову сломал. Помогите, пожалуйста!

if (document.all&&document.getElementById) 
     { 
     navRoot = document.getElementById("menu").getElementsByTagName("a");
     for (i=0; i<navRoot.length; i++) 
        {
        node = document.getElementById("menu").getElementsByTagName("a")[i];
        node.onmouseover=function() 
            {
             this.style.display="block";		
            }

        node.onmouseout=function() 
            { 
            this.style.display="none";              
            }
         }
     }
Ответить с цитированием
  #2 (permalink)  
Старый 05.10.2008, 12:29
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

var navRoot = document.getElementById("menu").getElementsByTagName("a");
for(var i=0,l=navRoot.length;i<l;i++){
    navRoot[i].onmouseover=function(){this.lastChild.style.display="block"}
    navRoot[i].onmouseout=function(){this.lastChild.style.display="none"}
}
Ответить с цитированием
  #3 (permalink)  
Старый 05.10.2008, 13:16
Интересующийся
Отправить личное сообщение для Yadooumne! Посмотреть профиль Найти все сообщения от Yadooumne!
 
Регистрация: 05.10.2008
Сообщений: 23

ZoNT,
гений! Спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 06.10.2008, 17:42
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

В css:
Код:
#menu a img {
  display: none;
}
#menu a:hover img {
  display: block;
}
Ответить с цитированием
  #5 (permalink)  
Старый 09.10.2008, 23:10
Интересующийся
Отправить личное сообщение для Yadooumne! Посмотреть профиль Найти все сообщения от Yadooumne!
 
Регистрация: 05.10.2008
Сообщений: 23

Kolyaj,
а ты проверь, как это работает в IE 6 и все поймешь )
Ответить с цитированием
  #6 (permalink)  
Старый 09.10.2008, 23:25
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

IE6 поддерживает :hover для гиперссылок, поэтому должно работать, правда надо записать так:
#menu a:link img, #menu a:visited img {
display: none;
}
#menu a:hover img {
display: block;
}

Последний раз редактировалось Octane, 09.10.2008 в 23:27.
Ответить с цитированием
  #7 (permalink)  
Старый 09.10.2008, 23:32
Интересующийся
Отправить личное сообщение для Yadooumne! Посмотреть профиль Найти все сообщения от Yadooumne!
 
Регистрация: 05.10.2008
Сообщений: 23

Octane,
приведенный тобой пример ничем не отличается от приведенного выше. И это в моем конкретном случае не работало.
Ответить с цитированием
  #8 (permalink)  
Старый 09.10.2008, 23:43
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от Yadooumne! Посмотреть сообщение
ничем не отличается
Для IE важно описывать состояния ссылки :link и :visited.
Ответить с цитированием
  #9 (permalink)  
Старый 12.10.2008, 17:19
Интересующийся
Отправить личное сообщение для Yadooumne! Посмотреть профиль Найти все сообщения от Yadooumne!
 
Регистрация: 05.10.2008
Сообщений: 23

Octane,
респект за стремление помочь. Но еще раз скажу, что это не правильно, и это не работает в IE 6. Могу показать пример, если уж совсем не верится.
Ответить с цитированием
  #10 (permalink)  
Старый 12.10.2008, 18:07
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Если у Вас не работает, еще не значит, что это не правильно. Возможно что-то Вы делаете не правильно или это какая-то особенность браузера. Раз уж мы задаем для тега <img> способ отображения block, то и родительский контейнер должен быть блочного типа. А так же необходимо указать размеры.
<!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></title>
<style type="text/css">
a:link, a:visited {
display: block;
}
a:link img, a:visited img {
display: none;
}
a:hover, a:hover img {
display: block;
width: 90px;
height: 90px;
}
</style>
</head>
<body>
	<div>
		<a href="http://localhost/">
			<img src="some-image.ext" alt="" />
			link
		</a>
	</div>
</body>
</html>

А еще лучше будет сделать это изображение фоновым рисунком ссылки, чтобы вообще не использовать тег <img>

Последний раз редактировалось Octane, 12.10.2008 в 18:09.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции zxc Общие вопросы Javascript 6 15.09.2008 11:56
Помогите разобраться в повторным обращении к функции, как её обнулить. AdvoGad Общие вопросы Javascript 0 01.09.2008 11:35
математические функции в type="text" Гость Общие вопросы Javascript 8 25.08.2008 22:48
вызов функции, из JS генерируемого на сервере subaru AJAX и COMET 1 12.07.2008 13:44
Вызов функции из файла. Phoenix Общие вопросы Javascript 2 21.11.2007 22:49