jQuery plugin function no es una función

2

Estoy teniendo un problema que nunca había visto. En una instalación de WordPress muy nueva, cargué un tema que había estado trabajando para el restaurante de un amigo: CornerPocketPub.com

El problema, como puede ver, es que los complementos jquery para la página de inicio (.cycle) y la página del menú (.easyAccordion) no se reconocen como funciones en Firebug. Ahora, he estado buscando respuestas por todas partes, pero parece que no consigo una solución que funcione para mí.

¡Por favor, ayuda, y gracias de antemano por la ayuda y el asesoramiento!

    
pregunta kaiser 02.07.2011 - 02:34

1 respuesta

5

Todavía digo que esto es un problema de jQuery ; sin embargo, es importante tener en cuenta que WordPress no requiere un modo de conflicto para jQuery .

De Codex: jQuery noConflict Wrappers

La biblioteca jQuery incluida con WordPress se establece en el modo noConflict() (consulte wp-includes/js/jquery/jquery.js ). Esto es para evitar problemas de compatibilidad con otras bibliotecas de JavaScript que WordPress puede vincular.

En el modo noConflict() , el acceso directo global $ para jQuery no está disponible, por lo que aún puede usar:

jQuery(document).ready(function(){
    jQuery(#somefunction) ...
});

pero lo siguiente lanzará un error o usará el método abreviado $ asignado por otra biblioteca.

$(document).ready(function(){
     $(#somefunction) ...
});

Sin embargo, si realmente te gusta el short $ en lugar de jQuery , puedes usar el siguiente envoltorio alrededor de tu código:

jQuery(document).ready(function($) {
    // Inside of this function, $() will work as an alias for jQuery()
    // and other libraries also using $ will not be accessible under this shortcut
});

Ese contenedor hará que su código se ejecute cuando el DOM esté completamente construido. Si, por alguna razón, desea que su código se ejecute inmediatamente en lugar de esperar al evento listo para DOM, entonces puede usar este método de envoltura:

(function($) {
    // Inside of this function, $() will work as an alias for jQuery()
    // and other libraries also using $ will not be accessible under this shortcut
})(jQuery);

Alternativamente, siempre puedes reasignar jQuery a otro acceso directo de tu elección y dejar el $ shorcut a otras bibliotecas:

var $j = jQuery;
    
respondido por el Chip Bennett 02.07.2011 - 02:54

Lea otras preguntas en las etiquetas