[Resolvido] Porque o javascript se comporta desta forma?
Peço de coracao para que, quem puder, criar um arquivo html e testar para ver o que acontece
<head>
<script type="text/javascript">
window.onload = function(){
var pai = document.getElementById("pai");
for(var i=1; i<=5;i++){
var m = i;
var div = document.createElement('div');
div.setAttribute('style' , 'width:200px; height:50px; float:left; margin-left:3px; border: 1px solid #000;');
div.onclick = function(){
alert("E agora meu valor => " + m);
}
div.innerHTML = "Meu valor => "+m;
pai.appendChild(div);
}
}
</script>
</head>
<body>
<div id='pai'>
</div>
</body>
Bom, eu tenho uma ideia de porque isso acontece, mas como resolver?
se eu utilizar, por exemplo, div.setAttribute('teste' , m);
e depois, dentro do evento onclick utilizar
this.getAttribute('teste');
dai funciona, mas fica horrivel, imagina se voce tem um objeto inteiro e precisa passar por parametro, dai fudeu?
OBS: na verdade eu preciso passar um objeto que contem muita coisa, o exemplo acima é apenas para ter uma ideia do que esta acontecendo, ele sempre leva em consideracao o ultimo...
OBS2: Eu posso criar alguma coisa para mapear os objetos e passar algum indie para o atributo do elemento html, mas é muita gambiarra.... so que, se for o unico jeito, fazer oq...
Discussão (5)
Carregando comentários...