JQuery: Passando $(this) para função
Neste post, mostro 2 formas de usar o $(this) para saber em qual campo foi pressionado uma tecla.
Na forma 1 temos que passar o $(this) como parâmetro da função, pois o evento ocorre em uma função anônima.
Na forma 2 não há necessidade de passar o $(this), pois a função é declarada.
<table> <tr> <td><input type="text" name="campo1" data-id="1"></td> <td><input type="text" name="campo2" data-id="2"></td> <td><input type="text" name="campo3" data-id="3"></td> </tr> </table> <p id="resultado"></p> |
// forma 1 $("table").on("keypress", "input", function(){ // tem que passar $(this) como parâmetro da função nome_funcao( $(this) ); }); function nome_funcao( elemento ){ // imprime resultado $("#resultado").html( "Input - ID: "+elemento.data("id") ); } // forma 2 // não precisa passar $(this) como parâmetro da função $("table").on("keypress", "input", nome_funcao); function nome_funcao(){ // imprime resultado $("#resultado").html( "Input - ID: "+ $(this).data("id") ); } |
Para testar os códigos, clique nos links abaixo:
Excelente!!