2012-02-16 7 views
8

Otrzymuję ten błąd podczas korzystania z programu twitter bootstrap. Nie otrzymałem tego błędu podczas używania go w html. Przekształciłem go w motyw Wordpress, a teraz otrzymuję ten błąd.

<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> 

Otrzymuję te błędy.

  1. "$ jest niezdefiniowana" na bootstrap-dropdown.js linia 72.
  2. "$ (". Rozwijana-przełącznik "). Rozwijana nie jest funkcją"

każda pomoc jest znacznie docenione. dzięki.

EDIT: Próbowałem to https://stackoverflow.com/a/9301017/759257

i zawiera najnowszą wersję 1.7.1 jquery i teraz to działa !!

Odpowiedz

32

Ładowanie skryptów w niewłaściwej kolejności. Najpierw należy załadować jQuery, w przeciwnym razie nie będzie on dostępny dla skryptu ładowania początkowego.

+1

Hej dzięki, zrobiłem to samo. teraz działa. wielkie dzięki :) – Karthik

1

Również podczas korzystania JQ w Wordpress należy owinąć kod w

jQuery(document).ready(function($) { 
    // $() will work as an alias for jQuery() inside of this function 
}); 

Further reading

4

Zakładam, że "bootstrap-dropdown.js" plik jest plugin jQuery. Jeśli tak jest, najpierw musisz załadować jQuery, więc przełączaj znaczniki <script>.

7

Nie jesteś ustawienie go w odpowiedniej kolejności:

<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> 
2

pierwsze jquery.min.js połączeń wówczas bootstrap-dropdown.js

Ponieważ bootstrap-dropdown.js pracuje bez jquery

1

Miałem dokładnie ten sam problem. I był pierwotnie, w zasadzie, z przodu ładuje wszystkie moje pliki javascript, w tym bootstrap, w jeden mega-pakietu w następujący sposób:

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])) 

Myślałam, że bootstrap ładował PO jQuery więc powinno być OK. Nie. Więc umieściłem bootstrap w osobnym pakiecie w następujący sposób:

  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")) 

To spowodowało ładowanie przez bootstrap właściwości PO JQuery. Prawdopodobnie rozwiązanie djb też by to wykonało. Ale to działało dla mnie.