Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite,
Tenho impressão que meu problema é bem simples, mas mesmo assim estou com dificuldades nele e gostaria de ajuda.
tenho uma tag "nav" com várias tag "a" dentro. Sendo que cada uma é relativa a uma tag "img" que está em outra tag "section". Não posso mudar o html paraficar tudo no mesmo local e usar "this", tenho que trabalhar com o que tenho. O que eu gostaria é que quando clicassemos, por exemplo, no terceio "a" fosse disparado um evento que interaja com a terceira "img". Ou seja, algo assim:
>
//arrays de objetos
var links = document.getElementById("ID_DA_NAV").getElementsByTagName("a");
var fotos = document.getElementById("ID_DA_SECTION").getElementsByTagName("img");
//exemplo de funcao
function minha_funcao () {
alert(i);
}
//evento de clique
for(i = 0; i <= links.length-1; i++){
links*.addEventListener("click", minha_funcao, false);*
}
O problema é que por algum motivo na função ele interpreta o "i" sempre como sendo o último contador e não o contator "i" do elemnto clicado. Ou seja o resultado do script acima é que iria aparecer o valor de "fotos.length" na alert e não o valor do contador "i".
Talvez com jQuery fosse mais fácil, mas estou realmente querendo me aprofundar no js e ser capaz de fazer tudo com ou sem jQuery.
Alguém têm alguma solução?
Obrigado,
Obrigado William,
Tentei aqui mas continua no mesmo erro. Tentar de novo esta noite.
A dica do William é interessante, mas no caso dele os elementos estão no mesmo lugar. No meu caso os elementos estão dentro de containers diferentes e infelimente não posso mudar.
Obrigado,
não importa o container, a minha dica funciona para ambos os casos.
Vishe, aki nao funfou. Devo ter feito algo errado. Vou olhar de novo.
Obrigado,
cara, é o mesmo princípio para um menu de abas.
aqui eu usei o href, mas é possível fazer pelo index sim. Não é tão complicado não.
http://wbruno.com.br/javascript-puro/principio-de-menu-em-abas/