Acabei de perceber que recebo toneladas de avisos obsoletos na versão mais recente (canária) do Chrome.
event.layerX e event.layerY estão quebrados e preteridos no WebKit. Eles serão removidos do motor em um futuro próximo.
Parece que o jQuery está estragando tudo.
Eu estou usando: jquery-1.6.1.min.js
.
Ajudaria a atualizar para a versão mais recente do jQuery ou ainda não foi corrigido ou é um bug do Chrome ou é outra coisa.
PS
Não consigo mostrar o código porque acho que é um erro geral, mas suspeito que os avisos são lançados quando tento acessar um objeto jQuery ou quando o jQuery tenta acessar o layerX / layerY (bem, tenho certeza de que é o caso, considerando o erro: P).
O jQuery provavelmente copia essas propriedades no objeto jQuery.
Assim...
O que está acontecendo?
EDITAR
O jQuery 1.7 foi lançado e corrige esse problema.
Leia mais em seu blog, aqui .
fonte
@
para suprimir erros.layerX
elayerY
, pelo menos até que eles considerem com mais cuidado. Também vale a pena notar que o IE foi adicionado recentementelayerX
elayerY
depois de não o ter até a versão 9. Meu palpite é que essas propriedades não vão desaparecer - pelo menos até que haja uma substituição adequada do W3C, o que não será em breve. Os avisos desapareceram nas versões recentes do WebKit.Respostas:
O que está acontecendo!?
"o jQuery provavelmente copia essas propriedades no objeto jQuery." Você está exatamente correto, então parece que você já sabe! :)
Espero que o jQuery atualize seu código para parar de tocá-lo, mas, ao mesmo tempo, o WebKit deveria saber melhor do que registrar um aviso de descontinuação em um evento (pelo menos na minha opinião). Um manipulador de mouse e seu console explode. :)
Aqui está um ticket recente do jQuery: http://bugs.jquery.com/ticket/10531
ATUALIZAÇÃO: Isso é corrigido agora se você atualizar para o jQuery 1.7.
Observe que, se a atualização do jQuery não resolver o problema, pode ter algo a ver com extensões / plugins usados, como Jake afirmou em sua resposta .
fonte
http://jsperf.com/removing-event-props/2
A correção temporária é executar esse código antes de fazer qualquer ligação de evento via jQuery:
ATUALIZAR
Veja os testes de desempenho mais recentes para descobrir qual é a maneira mais rápida de remover os acessórios do evento.
fonte
A solução mais curta para isso é esta linha:
fonte
A enorme quantidade dessas mensagens (acabei de receber 80000 delas enquanto uso o gmail) é realmente um bug no Chrome.
Você deve marcar o problema com estrela no Chromium .
fonte
Também pode ser causado por extensões do Chrome; verifique-as se a atualização do jQuery não funcionar.
fonte
Aqui está outra correção de uma linha, sem substituir a instância original de $ .event.props (que pode ou não ser uma matriz), apenas no caso de :-)
fonte
Eu usei isso depois de chamar qualquer evento:
Isso funcionou para mim, não tenho mensagens de aviso desde que fiz esse patch no meu código.
fonte
Além dos problemas de configuração listados nas outras respostas, esse erro pode ser desencadeado por um erro simples no seu próprio código: esquecendo o '#' de um seletor de jQuery ID.
Eu tinha código parecido com
(perdendo o # na frente do "conjunto de dados")
Além de (obviamente) não funcionar, essa mensagem de erro foi acionada no Chrome.
fonte
Eu encontrei esse problema no meu próprio código. Acontece que eu estava iterando sobre todas as propriedades em um objeto de evento como parte de uma ferramenta de depuração / inspeção que eu estava usando. Nesse caso em particular, eu estava usando o $ .extend do jQuery para clonar o objeto para inspeção posterior, mas acredito que qualquer uma das técnicas de iteração padrão nos vários kits de ferramentas também teria acionado o aviso.
Mencionei aqui porque meu pensamento inicial de simplesmente pesquisar na base de código por instâncias de layerX ou layerY não ajudou - a propriedade estava sendo referenciada genericamente, não pelo nome.
fonte