Dúvida em relação à JQuery

2 respostas
V

Bom dia a todos!

Tenho uma tela jsp que utiliza jquery.

Nesta tela existe um método chamado init.

Este método contem a seguinte estrutura:

"_init" : function() {
  
        this._btnGravar = $('#btnGravar');
.
. 
.

 $('#btnGravar').click($.proxy(this, "_gravar"));
    },
// funçao para gravar


     "_gravar" : function() {
    	 this._usuarios.slickGridSave("saveSelected");
    	 return false;
    },

Meu problema é o seguinte:

quando clico no botão btnGravar, a primeira linha da função _gravar é executada duas vezes, gerando duas linhas iguais na grid.

Alguém tem alguma ideia do que pode estar acontecendo.

Obrigado.

2 Respostas

V

Alguém tem alguma sugestão?

W
vinisoccol:
Bom dia a todos!

Tenho uma tela jsp que utiliza jquery.

Nesta tela existe um método chamado init.

Este método contem a seguinte estrutura:

"_init" : function() {
  
        this._btnGravar = $('#btnGravar');
.
. 
.

 $('#btnGravar').click($.proxy(this, "_gravar"));
    },
// funçao para gravar


     "_gravar" : function() {
    	 this._usuarios.slickGridSave("saveSelected");
    	 return false;
    },

Meu problema é o seguinte:

quando clico no botão btnGravar, a primeira linha da função _gravar é executada duas vezes, gerando duas linhas iguais na grid.

Alguém tem alguma ideia do que pode estar acontecendo.

Obrigado.

Algumas observacoes no seu codigo.

Porque vc cria funcoes com o nome entre aspas??

Outra coisa :
No dua funcao _init vc pesquisa $('#btnGravar') duas vezes, se vc buscou uma vez e jogou o valor para this._btnGravar nao tem necessidade de
percorrer o domNode da sua pagina outra vez fazendo $('#btnGravar').click($.proxy(this, "_gravar"));, certo ??
Sao pequenas coisa desse tipo que vao fazer o seu site ter uma ter uma performance melhor.

Eu achei o jeito que vc escreveu esse codigo um pouco estranho.
$('#btnGravar').click($.proxy(this, "_gravar"));
Porque vc nao faz assim:
$('#btnGravar').click(function() {
      $.proxy(this, "_gravar")
});

//Daniel

Criado 12 de junho de 2012
Ultima resposta 12 de jun. de 2012
Respostas 2
Participantes 2