$ Est une erreur non définie dans jquery
-
26-10-2019 - |
Question
J'obtiens cette erreur lors de l'utilisation bootstrap twitter. Je n'ai pas eu cette erreur lorsque vous l'utilisez en html. Je me suis converti en un thème wordpress, et maintenant je reçois cette erreur.
<script src="http://twitter.github.com/bootstrap/assets/js/bootstrap-dropdown.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$('.dropdown-toggle').dropdown()
</script>
Je me fais ces erreurs.
- "$ est pas défini" sur la ligne d'amorçage-dropdown.js 72.
- "$ (". Dropdown-bascule "). Menu déroulant n'est pas une fonction"
toute aide est très appréciée. merci.
modifier: J'ai essayé https://stackoverflow.com/a/9301017/759257
et inclus la dernière version jquery 1.7.1 et maintenant il fonctionne !!
La solution
Vous êtes en train de charger les scripts dans le mauvais ordre. Chargez jQuery d'abord, sinon il ne sera pas disponible pour le script d'amorçage.
Autres conseils
Vous n'êtes pas placer dans le bon ordre:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script src="http://twitter.github.com/bootstrap/assets/js/bootstrap-dropdown.js"></script>
<script type="text/javascript">
$('.dropdown-toggle').dropdown();
</script>
Je suppose que le fichier "bootstrap-dropdown.js" est un plugin jQuery. Si tel est le cas, vous devez charger jQuery d'abord, donc passer vos balises <script>
autour.
jquery.min.js premier appel puis votre bootstrap-dropdown.js
Parce que vos bootstrap-dropdown.js est en cours d'exécution sans jquery
En outre, lorsque vous utilisez JQ dans Wordpress vous devez envelopper votre code dans
jQuery(document).ready(function($) {
// $() will work as an alias for jQuery() inside of this function
});
J'ai eu ce même problème. J'étais à l'origine, au fond, chargement avant tous mes fichiers javascript, y compris bootstrap, dans un méga-paquet comme suit:
bundles.Add(New ScriptBundle("~/bundles/jquery-etc").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js",
[other js files here]))
Je pensais que le bootstrap chargement après jquery, il devrait être correct. Nan. Donc, je mets bootstrap dans un paquet séparé comme suit:
bundles.Add(New ScriptBundle("~/bundles/jquery-etc").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery-ui-{version}.js",
[other js files here]))
bundles.Add(New ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js"))
bootstrap causé à la propriété de charge après Jquery. Probablement la solution de DJB aurait fait aussi le travail. Mais cela a fonctionné pour moi.