web-dev-qa-db-fra.com

TypeError non récupéré: l'objet [objet objet] n'a pas de méthode "fancybox"

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

Donc, j'ai un site Web: http://tinyurl.com/6mx7an8 et j'ai inclus tous les fichiers jquery/fancybox comme le dit le manuel mais la console JS me donne l'erreur

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

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

14
mbajur

Il y a quelques problèmes sur votre site Web.

  1. Vous incluez la bibliothèque jQuery 2 fois avant et après l'inclusion du plugin fancybox js à cause duquel le plugin qui est ajouté est effacé par la deuxième inclusion de la bibliothèque jQuery.
  2. Il existe une autre bibliothèque qui écrase $, Donc votre code ne fonctionne pas car $ N'est plus un alias pour jQuery. Vous pouvez utiliser jQuery.noConflict() pour éviter les conflits avec d'autres bibliothèques de la page qui utilisent la même variable $.
53
ShankarSangoli

On dirait que jQuery est inclus deux fois, une fois près du haut de la tête et une fois près du bas.

6
danwellman

J'avais 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 bien chargé, une fois par page.

2
Brad Fellows

J'ai un script PHP CSS Unify sur mon site Web qui a ajouté le plugin jquery et jquery postmessage dans le même fichier javascript.

Cela me donnait donc l'erreur ci-dessus.

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

Je l'ai fait travailler avec ce code

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

        });
    })(jQuery);      
</script>
0
Joseph N.

La sous-bibliothèque Jquery peut être incluse dans la bibliothèque principale, par exemple jquery.ui.sortable.js que j'ai inclus dans jquery-ui.js lors du téléchargement et j'ai ajouté à nouveau que cela donnait une erreur pour moi.

type de script = "text/javascript" src = "vendor/js/jquery-ui.js">

type de script = "text/javascript" src = "vendor/js/jquery.ui.sortable.js">

alors vérifiez la sous-bibliothèque incluse ou non

0
Vinayak Shedgeri