Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera eu tenho um Menu DropDown aqui feito em Javascript e estou usando no IE.
Para quem tem necessidade especial preciso acessar o menu pelas teclas, pressiono 1 aparece menu 1 aperto 2 aparece menu 2. Isso já está fazendo, o erro acontece quando eu estou navegando pelo sub-menu
ex: eu tenho o menu Academico
ACADEMICO - MENU
horarios de aulas - SubMenu
notas - SubMenu
provas - SubMenu
eu aperto 1 ele acessa o academico (desce os submenu) aí eu vou com a teclas percorrendo os sub-menus. O erro acontece somente quando eu estou no primeiro sub-menu(horarios de aulas) e aperto a seta pra cima (como se eu fosse voltar para o Menu Academico) aí ele dá erro de javascrip, aparece assim:
Detalhes dos erros da página da Web
Agente de Usuário: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)
Carimbo de data/hora: Wed, 20 May 2009 19:28:13 UTC
Mensagem: 'document.getElementById(...)' é nulo ou não é um objeto
Linha: 671
Caractere: 5
Código: 0
---------------------------------------------------------------------------------------------
Eu só queria que na hora que quando eu estivesse no primeiro sub-menu e apertasse para cima não acontecesse nada. Era só pra não dá esse erro chato, ou seja, estou no primeiro sub-menu aperto seta pra cima é só não acontecer nada.
Código do Javascript tá assim:
aqui eu chamo no código no menu
Response.Write "onKeyDown=""if(event.keyCode == 40)getProxNode(3,"+CStr(submenu)&");if(event.keyCode == 38)getPrevNode(3,"+CStr(submenu)&");if(event.keyCode == 39)ShowMenu('M4','M4L1'), unShowMenu('M3');if(event.keyCode == 37)ShowMenu('M2','M2L1'),unShowMenu('M3');"">"
lembrando que:
event.keycode == 37 (seta pra esqerda)
event.keycode == 38 (seta pra cima)
event.keycode == 39 (seta pra direita)
event.keycode == 40 (seta pra baixo)
ou seja, preciso que nessa parte aqui do código, seja consertado:
if(event.keyCode == 38)getPrevNode(3,"+CStr(submenu)&");
ele vai chamar a função getPrevNode que vai fazer aquilo que tem la embaixo
Então, o que eu preciso fazer para quando eu apertar seta pra cima não acontecer nada?
porque pelo o que eu to vendo ele vai fazer novoitem = 1-1 e ficar nulo, sendo esse o erro, se eu não estiver enganado.
o que devo fazer? deve ser alguma besteira, mas não to sabendo.
//Função utilizada para o MENU de alunos com NECESSIDADES ESPECIAIS
function getProxNode(menu, subm){
novoitem = subm + 1;
novoitem = "M" + menu + "L" + novoitem;
document.getElementById(novoitem).focus();
}
//Função utilizada para o MENU de alunos com NECESSIDADES ESPECIAIS
function getPrevNode(menu, subm){
novoitem = subm - 1;
novoitem = "M" + menu + "L" + novoitem;
document.getElementById(novoitem).focus();
}
P.S: Pode apagar o outro tópico parecido com esse, porque agora que eu vi qual o erro realmente.
Agradeço a ajuda.
Márcio Xenofonte
Carregando comentários...