Проблема со скриптом в IE
Проблема такого рода: Есть вертикальное выпадающее меню которое написано на CSS. для корректного отображения в IE (в других браузерах все работает и без скрипта) используется ява-скрипт. Меню вызывается 3 раза. В первый раз все ОК. В последующих случаях меню не раскрывается ((.
|
Телепаты в отпуске. Где код?!
|
это код JS:
navHover1 = function() { var lis = document.getElementById("navmenu-v1").getElementsByTagName("LI"); for (var c=0; c<lis.length; c++) { lis[i].onmouseover=function() { this.className+=" iehover"; } lis[i].onmouseout=function() { this.className=this.className.replace(new RegExp(" iehover\\b"), ""); } } } if (window.attachEvent) window.attachEvent("onload", navHover1); Это само меню: <ul id="navmenu-v"> <li><a href="#">бельевой</a> <ul> <li><a href="index.php?page=tovar&sub=women_niz1" class="links_meny_pravo">сорочки</a></li> <li><a href="index.php?page=tovar&sub=women_niz2" class="links_meny_pravo">пижамы</a></li> <li><a href="index.php?page=tovar&sub=women_niz4" class="links_meny_pravo">халаты</a></li> <li><a href="index.php?page=tovar&sub=women_niz3" class="links_meny_pravo">комплекты</a></li> </ul></li> <li><a href="#">верхний</a> <ul> <li><a href="index.php?page=tovar&sub=women_verh1" class="links_meny_pravo">костюмы</a></li> <li><a href="index.php?page=tovar&sub=women_verh2" class="links_meny_pravo">джемпера</a></li> <li><a href="index.php?page=tovar&sub=women_verh3" class="links_meny_pravo">сарафаны и платья</a></li> </ul> </li> </ul> Это вызывается 3 раза. Первый раз раскрывается и дальше нет. |
this.className=this.className.replace(' iehover', ''); Похоже у тебя не заменяется класс. |
Простите бестолкового.... ((( куда надо вставить???
|
Твою строку
this.className=this.className.replace(new RegExp(" iehover\\b"), ""); заменить на мою. |
Эффект тот же (
|
В ишаке, в обработчике события this указывает не на элемент, а на window.
Попробуй так: navHover1 = function() { var lis = document.getElementById("navmenu-v1").getElementsByTagName("LI"); for (var c=0; c<lis.length; c++) { lis[c].onmouseover=(function(ele) { return function(){ele.className+=" iehover";} })(lis[c]); lis[c].onmouseout=(function(ele) { return function(){ele.className=ele.className.replace(' iehover', '');} })(lis[c]); } } |
Заметь, у тебя счётчик - с, а подставляешь ты i. Будь внимательнее.
|
вообще не одно меню не раскрывается (
|
Часовой пояс GMT +3, время: 03:53. |