14 votes

Erreur de type non résolue : L'objet [Object Object] n'a pas de méthode "fancybox"

J'ai un problème très étrange avec fancybox(2.x). J'utilise ce script depuis des lustres mais je n'avais jamais rencontré un tel problème auparavant.

J'ai donc un site web : http://tinyurl.com/6mx7an8 et j'ai inclus tous les fichiers jquery/fancybox comme indiqué dans le manuel, mais la console JS me donne l'erreur suivante

Uncaught TypeError: Object [object Object] has no method 'fancybox'

Avez-vous une idée de ce que je fais de travers ? Toute aide serait appréciée :)

53voto

ShankarSangoli Points 45345

Il y a quelques problèmes dans votre site web.

  1. Vous incluez la bibliothèque jQuery deux fois, avant et après l'inclusion du plugin js fancybox, ce qui fait que le plugin ajouté est effacé par la deuxième inclusion de la bibliothèque jQuery.
  2. Il y a une autre bibliothèque qui prend le pas sur la bibliothèque de l'entreprise. $ Votre code ne fonctionne donc pas parce que $ n'est pas un alias de jQuery plus. Vous pouvez utiliser jQuery.noConflict() pour éviter les conflits avec d'autres bibliothèques de la page qui utilisent la même variable $ .

6voto

danwellman Points 4017

Il semble que jQuery soit inclus deux fois, une fois en haut de la page et une fois en bas.

2voto

Brad Fellows Points 11

J'ai eu un problème similaire. D'une manière ou d'une autre, jQuery était chargé deux fois. Il s'avère qu'en testant quelque chose, j'ai ajouté une ligne drupal_add_js pour charger jquery dans un bloc, qui était désactivé, mais Drupal évaluait toujours le PHP dans le bloc désactivé.

Lorsque j'ai supprimé la ligne drupal_add_js du bloc, jQuery s'est chargé correctement, une fois par page.

1voto

J'ai un css unify php script sur mon site web qui a ajouté à la fois jquery et le plugin jquery postmessage dans le même fichier javascript.

Il me donnait donc l'erreur ci-dessus.

J'ai chargé le jquery postmessage séparément sans l'unifier et il a cessé de me donner l'erreur.

0voto

Joseph Ndungu Points 480

J'ai réussi à le faire fonctionner avec ce code

<script type="text/javascript">
    (function( $ ) {   
        $(document).ready( function( ) {  
            $("a#fancyBoxLink").fancybox({
                'href'   : '#popupvid',
                'titleShow'  : false,
                'transitionIn'  : 'elastic',
                'transitionOut' : 'elastic'
            });

        });
    })(jQuery);      
</script>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X