[RESOLVIDO] Criar evento dentro de um loop

4 respostas
K
for(var i=0;i<setting.events.length;i++){
            $(setting.events[i].name).click(function(){
                alert(i);
            });
        }

Todos os botões aparecem o ultimo indice+1(todos dão o mesmo resultado) alguem pode me ajudar

4 Respostas

mauricioadl

isso acontece porque quando o alert é executado ele pega o valor ATUAL da variável, logo faz com que todos os componentes tenham o mesmo valor.

K

existe algum modo de burlar isso?

mauricioadl

tem sim, faz algo assim que funfa:

function gambiarra(valor){
$(&quot;#meubotao&quot;).click(function(){
alert(valor);
});
}

for(var i = 0; i &lt; 10; i++){
gambiarra(i);
}
K

deu certo. Obrigado

Criado 7 de agosto de 2012
Ultima resposta 7 de ago. de 2012
Respostas 4
Participantes 2