09/05/2011

Novidades do jQuery 1.6

Olá como todos sabem, o jquery 1.6 foi lançado no dia 03/05/2011, e essa nova versão trás uma gama de novidades, vou contar um pouco sobre elas.

Agora o jQuery esta com um apoio forte vindo da Microsoft, onde a jQCon (jQuery conference) aconteceu no centro de conferências da Microsoft.

Coisas novas

deferred.always()
Adiciona um handler (manipulador) para ser chamado quando o objeto Deferred for resolvido ou rejeitado
deferred.pipe()
Método para filtrar e fazer chain (encadeamento) de Deferreds
Seletor :focus
Seleciona um elemento caso ele esteja em foco
jQuery.holdReady()
Segura a execução do evento ready() do jQuery, você pode saber mais no post holdReady – Manipulando a execução do .ready()
.promise()
Um observador de ações a uma coleção de objetos.
.prop()
Pega o valor de uma propriedade do primeiro elemento em um grupo de elementos
.removeProp()
Remove uma propriedade de um grupo de elementos

Métodos que tiveram melhorias

  • attr()
  • closest()
  • find()
  • is()
  • jQuery.map()
  • undelegate()
  • css()
  • data()

Coisas importantes que mudaram

attr() X prop()

Com a vinda do novo método prop() o attr() teve seu funcionamento alterado. Na versão 1.6 o jQuery separou nessas duas funções a propriedade do DOM e o atributo do DOM. Quando escrevemos <input type="text" value="asd" /> estamos dando ao atributo value o valor asd, mas quando alteramos ele (em tempo de execução) estamos alterando a propriedade value, ou seja, pro DOM o atributo continua o mesmo valor “asd”, mas a propriedade tem seu valor alterado.
Nessa nova versão do jQuery, o attr() pega apenas o valor dos atributos do DOM, e o prop() chegou para pegar a propriedade do DOM.

Exemplo

Com essa mudança, o comportamento do attr("checked") foi alterado, pois os navegadores na maioria das vezes tratam os valores de atributos como seu valor inicial, mas para valores boleanos o tratamento é difente, como checked e selected não tem valores (ex: <input type="checkbox" checked>) o valor do atributo é uma string vazia ou undefined.

Se você já fazia da forma correta, você não precisa se preocupar ;) . Algumas formas alternativas para quem usava o attr("checked").

  • this.checked A versão mais rápida
  • $(this).prop("checked") para jQuery 1.6 +
  • $(this).is(":checked") a forma correta e que sempre funcionou

É isso galera, em breve teremos uma gama de posts sobre essas novidades.


, ,

Comentários

Deixe seu Comentário