2010-06-07 22 views
34

He intentado un veriety de plugins jQuery hace poco y me siguen dando este error ...tema jQuery - # <an Object> no tiene un método

has no method

... independientemente de lo que el plugin trato de usar.

He comprobado los enlaces a los archivos JS que están todos allí y funcionan bien. Estoy usando Drupal si eso hace alguna diferencia.

He corrido los complementos lejos del sitio principal para demostrar que están funcionando y que estoy haciendo las cosas bien con un 100% de éxito.

¿Alguna idea?

Actualización:

Mi archivo de jQuery llamado en el pie de página:

$(document).ready(function() {   

$('#footer_holder').hide(); 

// Fancy Box 
$("a.fancybox").fancybox({ 
    'hideOnContentClick': true, 
    'titlePosition' : 'over', 
    'transitionIn' : 'elastic', 
    'transitionOut' : 'elastic', 
    'speedIn'  : 600, 
    'speedOut'  : 200, 
    'overlayShow' : false, 
}); 

$("#homepage_slider").easySlider({ 
    auto: true, 
    continuous: true, 
}); 

});

* note - caja elegante funciona bien (a menos que el código de easySlider esté sobre ella). jQuery está solucionado por Drupal. Estoy ejecutando la versión 1.4

+1

¿Dónde está ejecutando esto? ¿Está envuelto en una función '.ready()'? –

+4

+1 para la imagen :) - proporcione el marcado donde llama a jQuery & plugin code – jAndy

+0

He actualizado la pregunta para mostrar la información que se ha solicitado. – Shaun

Respuesta

19

Ignorarme. Lo siento a todos. Había escrito mal la url del guión. Gracias a Simon Ainley por la pizca en la dirección correcta.

Lo siento de nuevo. Gracias.

+0

¡alarido! ve a mí :-) –

+6

quién es Simon Ainley: p? – jAndy

+0

... y gracias, por supuesto, a jAndy y Pekka. (estaba hablando con Simon usando un cliente de mensajería instantánea). – Shaun

10

Tuve este problema, o uno que parecía superficialmente similar, ayer. Resultó que no estaba siendo cuidadoso al mezclar jQuery y prototipo. Encontré varias soluciones en http://docs.jquery.com/Using_jQuery_with_Other_Libraries. Opté por

var $j = jQuery.noConflict(); 

pero hay otras opciones razonables que se describen allí.

26

Este problema también puede surgir si incluye jQuery más de una vez.

+1

Oh, Dios mío. Esto fue, para mí. Otro complemento estaba cargando su propia versión de jQuery. Gracias. –

+0

yo también agregué más de una vez gracias @spsaucier finalmente el error desapareció ... – Iftikhar

+0

Cargué 3 veces: D – Aleks

10

Para cualquier otra persona llegar a esta pregunta: ¿

estaba realizando el más simple de jQuery, tratando de ocultar un elemento:

('#fileselection').hide(); 

y que estaba recibiendo el mismo tipo de error, "no detectada TypeError: #fileselection objeto no tiene un método 'ocultar'

Por supuesto, ahora es obvio, pero me acaba de dejar fuera de la jQuery indicador de '$' el código debería haber sido:.

$('#fileselection').hide(); 

Esto soluciona el problema obvio. ¡Espero que esto ayude a alguien a ahorrar unos minutos de depuración!

+0

¿Qué tiene esto que ver con la pregunta? hide es un built-in, no un plugin. – FlavorScape

+0

@FlavorScape, la pregunta no estaba relacionada con un complemento ... estaba relacionada con el mensaje de error. Vuelve a leer la pregunta; su información de plug-in es solo información adicional. Ninguna de las otras respuestas habla de plug-ins tampoco. La mayoría de las personas llegan a esta pregunta porque están buscando en Google "UnEdge TypeError: Object #fileselection no tiene el método 'hide'", y este es otro elemento para verificar si ha pasado demasiadas horas programando para ver que falta el '$'. – Sablefoste

+0

Está respondiendo la pregunta incorrecta. El OP indica claramente que la referencia a jquery está allí, por lo que su solución no tiene nada que ver con la pregunta. Es la respuesta a una pregunta diferente. Es bastante obvio que la cadena "#fileselection" no tiene método hide, que no es tan obvio como las versiones en conflicto de jQuery o los conflictos de complementos entre bibliotecas. – FlavorScape

5

Este problema también puede aparecer si incluye diferentes versiones de jQuery.

3

Esto generalmente tiene que ver con un selector que no se usa correctamente. Verifique y asegúrese de estar utilizando los selectores de jQuery como estaba previsto.Por ejemplo he tenido este problema al crear un método de clic:

$("[editButton]").click(function() { 
    this.css("color", "red"); 
}); 

Debido a que no estaba usando el método de selección correcta $ (este) para jQuery que me dio el mismo error.

¡Así de simple, compruebe sus selectores!

Cuestiones relacionadas