знатокам явы вопрос

dspu
На сайте с 10.05.2006
Offline
268
520

<script language="javascript">

startList = function() {
if(document.all&&document.getElementById) {
navRoot = document.getElementById("nav");
for (i=0; i<navRoot.childNodes.length; i++) {
node = navRoot.childNodes;
if (node.nodeName=="LI") {
node.onmouseover=function() { this.className+=" over"; }
node.onmouseout=function() { this.className=this.className.replace (" over", ""); } } } } }
window.onload=startList;
</script>

взято отсюда http://i-vd.org.ru/articles/css-menu.shtml

как изменить скрипт так, чтобы он работал для нескольких элементов <ul id="nav"> на странице

а то в таком состоянии работает только первый элемент

kil
На сайте с 03.04.2006
Offline
84
kil
#1
dspu:


взято отсюда http://i-vd.org.ru/articles/css-menu.shtml

как изменить скрипт так, чтобы он работал для нескольких элементов <ul id="nav"> на странице
а то в таком состоянии работает только первый элемент

Ну вообще id должен быть уникальным для каждого элемента, иначе как их различать? Можно например назначить для нужных ul одинаковые class, например: <ul class="nav">.

Выбираем и проверяем class у всех ul на странице - и вперед :)

<script language="javascript">
startList = function() {
if(document.all&&document.getElementById) {
ulElements = document.getElementsByTagName("UL");
for (j=0; j<ulElements.length; j++) {
if (ulElements[j].className=='nav') {
navRoot = ulElements[j];
for (i=0; i<navRoot.childNodes.length; i++) {
node = navRoot.childNodes;
if (node.nodeName=="LI") {
node.onmouseover=function() { this.className+=" over"; }
node.onmouseout=function() { this.className=this.className.replace (" over", ""); } } } }
}
}
}
window.onload=startList;
</script>

По-хорошему, можно все необходимые ul запихнуть в div, чтобы ограничить границы поиска элементов:

<div id="navigaion">
<ul class="nav">
...
</ul>
<ul class="nav">
...
</ul>
</div>

.....

<script>
startList = function() {
if(document.all&&document.getElementById) {
ulElements = document.getElementById("navigation").getElementsByTagName("UL");
.......

</script>

Dreammaker
На сайте с 20.04.2006
Offline
569
#2

10 яв.

gif js_not_java.gif
malls
На сайте с 08.08.2005
Offline
255
#3

Dreammaker - +100500! бил бы и бил пыльным мешком по голове за такое...

Есть правда еще вариант! Артельно, минусовать всем кто ответит ТС на сабж! :)

dspu
На сайте с 10.05.2006
Offline
268
#4

kil, спасибо, работает

Dreammaker, звиняйте батьку :)

malls, нервные клетки не восстанавливаются

kil
На сайте с 03.04.2006
Offline
84
kil
#5
malls:
Dreammaker - +100500! бил бы и бил пыльным мешком по голове за такое...

Есть правда еще вариант! Артельно, минусовать всем кто ответит ТС на сабж! :)

Отличный вариант! Помогаешь человеку, а тебя за это еще и минусуют!

Ну перепутал ТС, с кем не бывает! Вполне кстати логично для человека, который скопировал код и не смог в нем разобраться.

malls
На сайте с 08.08.2005
Offline
255
#6
kil:
Ну перепутал ТС, с кем не бывает! Вполне кстати логично для человека, который скопировал код и не смог в нем разобраться.

А нафига тогда копировать? :) Потом когда один дурак раз в полгода так ошибется - можно понять, но когда в этой ветке почти каждый путает - злить начинает. Многие топики же смотришь исключительно по заголовку...

Причем нет бы оставляли от ява-скрипт, только "скрипт" (учитывая непопулярность VBScript) можно было бы догадаться - но нет, оставляют только "яву" почему-то - дебилизм?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий