Проблема со скриптом в 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, время: 12:08. |