詳細検索

Muitos plugins travam devido a mudanças nas especificações no jQuery 1.9

Avatar
por maeno
3 min de leitura

Muitos plugins travam devido a mudanças nas especificações no jQuery 1.9
Traduzido do 日本語 • Ver original

código { preenchimento (preenchido): 2px; cor de fundo: #f4f4f4; cor: #7f0055; peso-da fonte: negrito; borda: sólido 1px #ddd; } aspas { margem-esquerda: 1em; tamanho-fonte: 12px; altura-linha: 17px; cor-fundo: #fdfdfd; borda: sólido 1px #ccc; preenchido: 4px; estilo-fonte: normal; }

Eu estava desenvolvendo um sistema que estava desenvolvendo atualmente com a última versão jQuery 1.9.1, e era viciado em um plugin jQuery que rodava no sistema que eu estava desenvolvendo no mês passado e que deveria implementar a mesma coisa, mas não funcionou. Era a "thickbox" que vinha com o núcleo do WordPress, e eu me perguntei por que funcionava no painel de administração e não no lado do tema, e quando pesquisei, vi que havia uma diferença entre o jQuery do núcleo que eu estava carregando, que era 1.8 e 1.9. Quando pesquisei as mudanças de especificação da série jQuery 1.9, percebi que o método que até então era bastante útil havia sumido.
Eu sabia que seria deletado no futuro, mas usei '$.browser()' porque era fácil de usar, e '$.live()', que foi útil porque era mais versátil que '$.bind()', que era menos adaptável a objetos DOM gerados dinamicamente, etc., então plugins jQuery que usam esses métodos começaram a causar erros.
Dito isso, resumi as principais mudanças nas especificações no jQuery 1.9.

  1. '$.browser()' foi designado como não suportado desde a depreciação 1.3, mas o método finalmente foi excluído... Era fácil de usar porque você pode facilmente avaliar o navegador, mas não tem como evitar. De agora em diante, preciso usar '$.support()' para configurar uma fórmula de julgamento.

  2. '$.live()' está descontinuado

Uma versão estendida de '$.bind()', o bind é um método que permite vincular processamento a objetos gerados dinamicamente em jQuery ou JavaScript. Isso também foi útil porque era fácil de usar, mas foi descontinuado. A partir de agora, você pode usar '$.on()' e '$.off()'. Bem, isso é definitivamente mais inteligente porque você pode controlar o ligar/desligar eventos de vinculação de forma fácil de entender.

  1. '$.die()' está obsoleto

Este é um método que elimina a função live acima. Se não houver live, isso também é desnecessário.

  1. '$.sub()' está descontinuado

Este é um método que cria uma cópia de um objeto jQuery core cujas propriedades e métodos podem ser alterados livremente. Foi usado no desenvolvimento de plugins para estender o núcleo jQuery independentemente sem alterar o núcleo, mas pode ter havido a decisão de que não haveria plugin que copiasse o enorme núcleo jQuery e consumisse memória. Bem, é um método que não é muito usado por ninguém além dos desenvolvedores de plug-ins, e parece que esse método está conectado desde a série 1.8, então o impacto de sua abolição é baixo.

  1. '$.toggle(fn1(),fn2(),[... depreciação de fnN()])'

Esse método foi obsoleto na série 1.7. Era um método que podia executar funções como fn1, fn2 e fnN toda vez que um objeto especificado fosse clicado, e depois retornava ao fn1 após fnN. E quanto à interface onde você precisa mudar tanto o processamento a cada clique? Então fico pensando se é apropriado aboli-lo... Ah, a propósito, '$.toggle()', que é um tipo de efeito de evento que não é um tipo limitado a funções, não foi abolido.

  1. Outros métodos com ordem de descrição alterada e conteúdo de processamento

Parece que vários detalhes mudaram, como '$.add()', '$.before()', '$.after()', '$.addSelf()', etc.

A partir de 12 de fevereiro de 2013, a versão mais recente do jQuery é a 1.9.1, mas se você usar plugins e bibliotecas jQuery existentes, espera-se que muitas coisas não funcionem como estão, a menos que você as deixe em versões até a 1.8. Pode ser melhor reconhecer o jQuery até a 1.8 e depois da 1.9 como itens separados.

Related Articles