Se você, assim como eu, faz uso do método live comece a usar em seus novos jobs o método on pois de acordo com a documentação do jQuery 1.7 o método on substitui os antigos live, delegate e bind.

Encontrei tal informação neste blog mas o mesmo informa tal substituição válida somente à partir da versão 1.7.1.

Verifiquei os arquivos das versões 1.7, 1.7.1, 1.7.2 e não notei diferença. Nas 3 versões os métodos live, delegate e bind chamam on com a mesma função:

live: function( types, data, fn ) {
jQuery( this.context ).on( types, this.selector, data, fn );
return this;
}

delegate: function( selector, types, data, fn ) {
return this.on( types, selector, data, fn );
}

bind: function( types, data, fn ) {
return this.on( types, null, data, fn );
}

Os antigos métodos são agora atalhos para on. A questão de evitá-los é somente por questão de performance.

Situação semalhante temos quando usamos $.getScript() e $getJSON() que são atalhos para $.ajax().

One Response to “jQuery – método on substitui live, delegate e bind”

  1. Marcio Toledo Says:

    Descobri isso meio na marra estava tendo um problema que estava mais pra bug do que performance. E quando fui ler a documentação achei sobre o ‘on’. Foi só trocar os ‘binds’ e pronto :-)

Leave a Reply