this.blur не дружит с выпадающим меню

musicant

Новичок
this.blur не дружит с выпадающим меню

Добрый день.

Есть такой скрипт для удаления пунктирного прямоугольника вокруг ссылок-

function c(){
if(this.blur)this.blur();
}
function d(){
e=document.getElementsByTagName("a");
for(i=0;i<e.length;i++){
e.onfocus=c;
}
}

И такой скрипт для выпадающего меню (нужен только для ИЕ, остальные понимают :hover как надо)-

dropmenu = function() {
if (document.all&&document.getElementById) {
navRoot = document.getElementById("menubar");
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=d;
window.onload=dropmenu;
Тогда в IE 7 и IE 6 все работает, но в FF не пропадают пунктирные рамки.

Если поменять строчки местами:
window.onload=dropmenu;
window.onload=d;
Тогда в IE 7 и IE 6 перестает "выпадать" меню, а в FF все как надо.



Подскажите пожалуйста, есть ли универсальное решение проблемы?
 

@ndrey

Новичок
что за пунктирный прямоугольник? и почему это нельзя сделать средствами css?
 

musicant

Новичок
Пунктирный прямоугольник появляется вокруг ссылок при Клике мышкой (наблюдается везде, кроме Opera и IE7).

Если Вы знаете решение в моей ситуации - поделитесь.
 

@ndrey

Новичок
Автор оригинала: musicant
Если Вы знаете решение в моей ситуации - поделитесь.
я незнаю решение твоей проблемы, но я знаю как делать выпадающее меню, где нет таких проблем - http://beholder-eye.info/2006/03/30/dropdown-menu-css (как вариант), поэтому я и спросил про css.
 

musicant

Новичок
@ndrey
Вы могли бы хоть бегло изучить мой код.
Это тоже самое, что и ваше меню, лишь с небольшими вариациями! (я читал ее на AlistApart)
 

@ndrey

Новичок
Автор оригинала: musicant
@ndrey
Это тоже самое, что и ваше меню, лишь с небольшими вариациями! (я читал ее на AlistApart)
?? видимо плохо:), там достаточно хорошо описано все и при реализации такого меню у меня не возникло указанных проблем. мне так же непонятен этот излишний js код, может меню особенное? весь js для такого меню предназначен только для ie по сути...
 

musicant

Новичок
Автор оригинала: @ndrey
при реализации такого меню у меня не возникло указанных проблем
Вы пытались совместить код меню с кодом, "убивающим" пунктир вокруг ссылок? сомневаюсь...

Проблема НЕ В МЕНЮ а во ВЗАИМОДЕЙСТВИИ ДВУХ СКРИПТОВ.
Если вы не знаете ответа, зачем флудить?
 

@ndrey

Новичок
я имел ввиду пунктирный прямоугольник вокруг ссылок в МЕНЮ, поэтому мне было непонятно...сорри
 

dimagolov

Новичок
musicant
если проблема именно с blur, то проверь, на что указывает this в ф-ии c(). у меня подозрение, что на window, а не на элемент, но могу и ошибиться
 

musicant

Новичок
Так ведь ф-ия с() вызывается через несколько строк в ф-ии d() к переменной e:

...
e=document.getElementsByTagName("a");
for(i=0;i<e.length;i++){
e.onfocus=c;
...

Blur не отключается в Firefox, если сначала вызвать ф-ию d() а потом dropmenu.
Если вызывать в обратной последовательности, то вырубается меню в IE.

Есть вариант прописать onfocus в теге каждой ссылки и убрать функции с() и d().
Это наверное будет работать, но не хочу портить код...
 
Сверху