Problemas de WebKit con event.layerX y event.layerY
Me acabo de dar cuenta de que recibo toneladas de advertencias obsoletas en la última versión (canary) de Chrome.
event.layerX y event.layerY están rotos y en desuso en WebKit. Serán retirados del motor en un futuro próximo.
Parece que jQuery está arruinando todo.
Estoy usando: jquery-1.6.1.min.js
.
¿Ayudaría actualizar a la última versión de jQuery o aún no está solucionado o es un error de Chrome o es algo más?
PD
No puedo mostrarte el código porque creo que es un error general, pero sospecho que las advertencias aparecen cuando intento acceder a un objeto jQuery o cuando jQuery intenta acceder a la capaX/capaY (bueno, estoy bastante seguro de que ese es el caso considerando el error :P).
jQuery probablemente copia esas propiedades en el objeto jQuery.
Entonces...
¿Qué está sucediendo?
EDITAR
jQuery 1.7 ya está disponible y soluciona este problema.
Lea más en su blog, aquí .
¿¡Qué está sucediendo!?
"jQuery probablemente copia esas propiedades en el objeto jQuery". Tienes toda la razón, ¡parece que ya lo sabes! :)
Con suerte, jQuery actualizará su código para dejar de tocar eso, pero al mismo tiempo, WebKit debería haber sabido que no debía registrar una advertencia de obsolescencia en un evento (al menos en mi opinión). Un controlador de movimiento del mouse y tu consola explota. :)
Aquí hay un ticket jQuery reciente: http://bugs.jquery.com/ticket/10531
ACTUALIZACIÓN: Esto se soluciona ahora si actualiza a jQuery 1.7.
Tenga en cuenta que si actualizar jQuery no soluciona el problema, puede tener algo que ver con las extensiones/complementos usados, como lo indicó Jake en su respuesta .
http://jsperf.com/removing-event-props/2
La solución temporal es ejecutar este código antes de realizar cualquier enlace de evento a través de jQuery:
(function(){
// remove layerX and layerY
var all = $.event.props,
len = all.length,
res = [];
while (len--) {
var el = all[len];
if (el != 'layerX' && el != 'layerY') res.push(el);
}
$.event.props = res;
}());
ACTUALIZAR
Consulte las últimas pruebas de rendimiento para descubrir cuál es la forma más rápida de eliminar los accesorios del evento.
La solución más corta para esto es esta frase:
$.event.props = $.event.props.join('|').replace('layerX|layerY|', '').split('|');