Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tiago Sabadini

Função está sendo chamada duas vezes - jQuery

Recommended Posts

Olá Pessoal, eu tenho uma tabela e um botão chamado Adicionar Usuário. Conforme vou Clicando no botão, vou adicionando linhas na tabela.

O usuário preenche os inputs (que são linhas da tabela) e clica no ícone salvar.

Uma das colunas da tabela é um select que traz informações para outro select na outra coluna.

Usando o change no primeiro select eu percebo que o evento está sendo chamado duas vezes do mesmo lugar.

 

Detalhe: O evento está sendo chamado na quantidade de linhas da tabela. Se adicionei 5 linhas na tabela, ele chama o evento 5 vezes.

 

Eu tive que colocar o evento dentro de outro, senão não funcionava.

 

j('.btn_add_usuario').on({
        click: function(){
//Alguma coisa aqui

j('#lista .ipt-listar-usuarios').on({
                change: function(){
                    var el = j(this);
                    var id_elemento = el.attr('name');
                    id_elemento = id_elemento.split('-');
                    id_elemento = id_elemento[1];
                    var numero_sistema = el.val();
                    carregar_usuarios( numero_sistema , id_elemento );
                }
            });

}
})

 

 

Aguardo,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tive que colocar o evento dentro de outro, senão não funcionava.

essa é a raiz do problema cara, certamente q é isso q está causando a duplicação do bind do evento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu resolvi fazendo o seguinte: ao invéz de criar o segundo on() eu fui adicionando eventos aos elementos a medida em que iam sendo criados na tela, já que eu estava construindo todos com js a todo momento.

 

Fiz algo do tipo:

for( var x in dados ){

  $( "#id" + dados[x] ).click(function(){
    //faz alguma coisa aqui
  });

}

Não sei se é a melhor forma de fazer, mas assim deu certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.