Изменение адреса элемента

 
0
 
JavaScript
ava
Aliance | 04.11.2004, 21:00
Меня волнует, будет ли мой скрипт работать в Мозиле (и желательно в опере):

HTML
<IMG name="pict" ...>
<a href="bla.htm" onmouseover=" pict.src='new.jpg' ">
Comments (8)
ava
Sardar | 04.11.2004, 21:38 #
С небольшими переделками:
HTML
<IMG name="pict" ...>
<a href="bla.htm" onmouseover="document.getElementsByName('pict').item(0).src='new.jpg';">

В DOM очень много коллекций, но способ пробега только один, через цикл. Не хватет функции map для коллекций:
function rolloverImages(name, newsrc) {
function newel(el) {el.src=newsrc};
document.getElementsByName(name).map(newel);
}
ava
Aliance | 04.11.2004, 23:52 #
А если у меня много таких картинок - то item(0) - нужно менять ?
added later:
Тоесть я делаю меню, нужно чтобы работало обязательно в IE & Mozilla:


<a href="index.php?action=item&item=1" onmouseover="pict.src = 'images/Morgenshtern.gif'" onmouseout="pict.src = 'images/blank.gif'">Начало<a>
<IMG src="images/blank.gif" name="pict" width="24" height="15">
<br>
<a href="index.php?action=item&item=2" onmouseover="pict2.src = 'images/Morgenshtern.gif'" onmouseout="pict2.src = 'images/blank.gif'">Устав<a>
<IMG src="images/blank.gif" name="pict2" width="24" height="15">
<br>
<a href="index.php?action=hierarchy" onmouseover="pict3.src = 'images/Morgenshtern.gif'" onmouseout="pict3.src = 'images/blank.gif'">Состав<a>
<IMG src="images/blank.gif" name="pict3" width="24" height="15">
<br>
<a href="index.php?action=item&item=3" onmouseover="pict4.src = 'images/Morgenshtern.gif'" onmouseout="pict4.src = 'images/blank.gif'">История<a>
<IMG src="images/blank.gif" name="pict4" width="24" height="15">
<br>
<a href="index.php?action=news" onmouseover="pict5.src = 'images/Morgenshtern.gif'" onmouseout="pict5.src = 'images/blank.gif'"><b>Новости</b><a>
<IMG src="images/blank.gif" name="pict5" width="24" height="15">
<br>
<a href="index.php?action=diplomacy" onmouseover="pict6.src = 'images/Morgenshtern.gif'" onmouseout="pict6.src = 'images/blank.gif'">Дипломатия<a>
<IMG src="images/blank.gif" name="pict6" width="24" height="15">
<br>
<a href="index.php?action=item&item=4" onmouseover="pict7.src = 'images/Morgenshtern.gif'" onmouseout="pict7.src = 'images/blank.gif'">Услуги<a>
<IMG src="images/blank.gif" name="pict7" width="24" height="15">
<br>
<a href="index.php?action=item&item=12" onmouseover="pict8.src = 'images/Morgenshtern.gif'" onmouseout="pict8.src = 'images/blank.gif'">Энциклопедия<a>
<IMG src="images/blank.gif" name="pict8" width="24" height="15">
<br>
<a href="/forum/" target="_blank" onmouseover="pict9.src = 'images/Morgenshtern.gif'" onmouseout="pict9.src = 'images/blank.gif'"><b>Форум</b><a>
<IMG src="images/blank.gif" name="pict9" width="24" height="15">
<br>
<a href="index.php?action=item&item=6" onmouseover="pict10.src = 'images/Morgenshtern.gif'" onmouseout="pict10.src = 'images/blank.gif'">Эпос<a>
<IMG src="images/blank.gif" name="pict10" width="24" height="15">
<br>
<a href="index.php?action=gallery" onmouseover="pict11.src = 'images/Morgenshtern.gif'" onmouseout="pict11.src = 'images/blank.gif'">Фотогалерея<a>
<IMG src="images/blank.gif" name="pict11" width="24" height="15">
<br>
<a href="index.php?action=item&item=14" onmouseover="pict12.src = 'images/Morgenshtern.gif'" onmouseout="pict12.src = 'images/blank.gif'">Служба новостей<a>
<IMG src="images/blank.gif" name="pict12" width="24" height="15">
<br>
<a href="index.php?action=item&item=15" onmouseover="pict13.src = 'images/Morgenshtern.gif'" onmouseout="pict13.src = 'images/blank.gif'">Служба пользователей<a>
<IMG src="images/blank.gif" name="pict13" width="24" height="15">


Это работает в IE, в других браузерах у меня временно нету возможности протестировать =/
ava
Sardar | 05.11.2004, 00:03 #
Ну ты вроде как не свой smile
getElementsByName возвращает все элементы с указанным аттрибутом name, выбираем из них картинки если имена давал не только картинкам и делаeм с ними что угодно.
В следующем поколении браузеров будет XPath(DOM3), выборки элементов будут очень простыми.

В ИЕ автоматически создаются переменные с именем/ид тега, ты эту фичу как раз используешь. Больше нигде такое не проходит, почему бы не юзать getElmentById?
В твоем случае можно обратится к nextSibbiling, следующий тег для A. Mожно выбирать элементы по имени какпо ИД, но это не совсем целесообразно, правильней задать тегам ID.
ava
Aliance | 05.11.2004, 00:06 #
Sardar
Ты, видимо, пока писал не увидел моего дополнения - идея моего меню такая: при наводке курсора над пунктом (ссылкой) меню - картинка рядом с ним становиться другой...
ava
Sardar | 05.11.2004, 00:09 #
Елки я за тобой не успеваю smile
Ответ выше.
ava
Aliance | 05.11.2004, 00:12 #
К сожалению это неудобно и делает код громозким, сперва я так и делал.
Почему попросил совета в таком, казалось бы простом вопросе, потому что мне нужно и совместимость и компактность, как бы ты сделал?
Все таки DOM ?
ava
Sardar | 05.11.2004, 00:19 #
Цитата
К сожалению это неудобно и делает код громозким, сперва я так и делал.

Этот минимализм скоро проходит, по себе знаю ;-)
Если ты заменишь pict13.src = 'images/Morgenshtern.gif' на document.getElementById('pict13').src = 'images/Morgenshtern.gif', то работать будет везде.
А еще лучше если ты положишь весь этот список в какой нибудь контейнер(div), затем пробежишся по всем элементам и установишь им обработчиков событий. код будет минимальным и правильным.
ava
Aliance | 05.11.2004, 00:24 #
Вот, про второе решения я и спрашивал, спасибо. Огромное. :exclamation
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  Sardar ava  Aliance
advanced
Submit