2017-10-15 6 views
0

Je travaille sur ce problème assez étrange depuis plusieurs jours maintenant, et je ne comprends vraiment pas pourquoi cela se produit.jQuery plugin est indéfini bien qu'il soit correctement inclus avant mon code js

Fondamentalement, l'environnement est WordPress et je suis avec deux fichiers js:

vendor.js -> generated by gulp and all it does is concatenating bower libs together

myScript.js -> my code

Ce que je sais (avec preuve):

  • Le fichier fournisseur est inclus avant mon code (vérifié à partir la console)
  • Le plugin que j'utilise est inclus dans vendor.js (a ouvert le fichier dans un nouvel onglet en chrome)
  • Les deux fichiers sont chargés correctement (j'ai imprimé certains debu g console log et ils sont dans la console)

MAIS même si tout me semble bien, le plugin est encore indéfini pour une raison quelconque. Le plugin J'utilise est celui-ci: https://github.com/idiot/unslider

et l'erreur que je reçois dans la console est la suivante:

Uncaught ReferenceError: unslider is not defined

Ceci est la partie de mon code où j'appelle et besoin de ce plugin:

jQuery(document).ready(function($) { 
    console.log("unslider is ", unslider); 
    $('#topBannerSlider').unslider({ 
    autoplay: true, 
    delay: 10000, 
    keys: true, 
    nav: true, 
    arrows: { 
     prev: '<a class="unslider-arrow prev fa fa-arrow-circle-left"></a>', 
     next: '<a class="unslider-arrow next fa fa-arrow-circle-right"></a>' 
    } 
    }); 

    $('#homePageTestimonialsCarousel').unslider({ 
    autoplay: true, 
    delay: 20000, 
    keys: true, 
    nav: true, 
    arrows: false 
    }); 
} 

et il fait la même chose si je tente de le charger avant jQuery(document).ready() événement, comme si:

console.log("unslider is ", unslider); 
jQuery(document).ready(function($) { 
    $('#topBannerSlider').unslider({ 
    autoplay: true, 
    delay: 10000, 
    keys: true, 
    nav: true, 
    arrows: { 
     prev: '<a class="unslider-arrow prev fa fa-arrow-circle-left"></a>', 
     next: '<a class="unslider-arrow next fa fa-arrow-circle-right"></a>' 
    } 
    }); 

    $('#homePageTestimonialsCarousel').unslider({ 
    autoplay: true, 
    delay: 20000, 
    keys: true, 
    nav: true, 
    arrows: false 
    }); 
} 

Avez-vous une suggestion? Que puis-je essayer d'autre? Qu'est ce que ça peut être d'autre? Je suis vraiment coincé et toute aide serait vraiment appréciée. Merci beaucoup

+0

Vérifiez l'ordre de chargement de ces scripts, d'abord inclure jQuery, puis unlider, puis votre code js. – derloopkat

+0

Salut, je l'ai vérifié, tout est dans le bon ordre .. c'est pourquoi il est vraiment étrange pour moi – Nick

+0

dans les échantillons de code qu'ils chargent unslider.js après que html est défini, faites-vous la même chose? – derloopkat

Répondre

2

Si je reçois ce droit, vous dites WordPress, alors essayez

jQuery insted de $

J'ai ce problème avant et ce corriger. WordPress, PHP, JQuery et $ ne se mélangent pas;).

+0

Je ne le crois pas, mais cela a résolu le problème! Vraiment étrange, mais bon, merci l'homme que vous avez sauvé mon week-end :) – Nick

+0

à tout moment mec;) –