Sign up with your email address to be the first to know about new products, VIP offers, blog features & more.

“f.easing e.animatedproperties this.prop is not a function” arreglado

Hace no mucho, Alberto Hornero y yo, comenzamos un proyecto nuevo junto con otro amigo, Antonio Sánchez, llamado Red de Autores. La idea básica era crear una red de blogs gratuitos, sobre los que añadir un componente social. El proyecto es bastante joven, pero por ahora no podemos quejarnos de la aceptación.

Logo Red de Autores

El componente social lo pone BuddyPress, uno de los plugins más radicales que he conocido para WordPress, ya que introduce gran cantidad de características y básicamente permite hacer una pequeña red social en el sitio.

Adaptamos un tema, montamos todo y como normalmente ocurre con WordPress, todo perfecto sin tener que adentrarnos demasiado en el código, ni tener que dedicarle más tiempo del estrictamente necesario.

Sin embargo, cuando actualizamos a WordPress 3.2.1 comenzó a surgir un problema, había elementos que no se estiraban y aparte de los defectos estéticos, la consola de JavaScript se quedaba tan bloqueada, que acciones tan necesarias como comunes (por ejemplo subir una imagen) no podían efectuarse fácilmente.

Logo BuddyPress

Me puse a investigar y el error que me aparecía en la consola de JavaScript era algo así como: f.easing e.animatedproperties this.prop is not a function (con algunos corchetes y paréntesis de por medio). En Google no había suficiente documentación, o al menos, con la presente no era capaz de llegar a resolver el problema de manera inmediata.

Sólo pude llegar a deducir dos cosas y a raíz de ahí pude completar la solución:

  1. Había una incompatibilidad por la llamada a una serie de funciones que habían cambiado de nombre en una versión reciente del plugin de jQuery: jQuery Easing.
  2. Esta incompatibilidad se manifestaba en alguna llamada al plugin.

Veamos cómo he procedido para solucionar el problema. Aunque existe un fichero para evitar esto mismo, de compatibilidad con versiones anteriores (que por cierto acabo de ver y que en su momento no conocía) lo que hice fue lo siguiente.

Modificar llamadas

Las llamadas a funciones antiguas las cambié por su equivalentes en la nueva versión del plugin jQuery:

  • easeIn por easeInQuad
  • easeOut por easeOutQuad
  • easeInOut por easeInOutQuad

Tenéis una lista completa de modificaciones de llamadas en el fichero de compatibilidad (por si preferís no usarlo y directamente tratar con las nuevas funciones).

Una vez modificado ésto, el problema seguía existiendo y es que en el fichero global.js de mi tema, estaba integrado el plugin antiguo (o algunas líneas de éste con las funciones que usaba) y había un problema de nombres de funciones y llamadas.

Logo de jQuery

Eliminar rastros

Busque la línea y la suprimí, de hecho, para evitar más problemas, quité el fichero propio del plugin e integré su contenido en mi fichero global.js.

Todo esto que os comento se habría solucionado con el fichero de compatibilidad que acabo de encontrar, pero no deja de ser un ejemplo de cómo, una pobre planificación inicial en un desarrollo (el del complemento de jQuery) hace que luego surjan quebraderos de cabeza variados. Tened en cuenta que el error lo da una función que a priori no tiene nada que ver con eso y que por las características propias de JavaScript, es verdaderamente complicado ver código de jQuery o sus plugins en versión de producción, que no de desarrollo.

Leer entrada anterior
Adiós MeeGo, ¡hola Tizen!

Si hace unas semanas razonaba de por qué debe triunfar MeeGo, ahora no puedo decir lo mismo. En la página...

Cerrar