2012-02-10 5 views
51

Sto costruendo un piccolo sito al momento e volevo utilizzare alcune parti Bootstrap da Initialzr, in particolare le schede. Ho provato attualmente utilizzando il codice di esempio fornito dal progetto Bootstrap (http://twitter.github.com/bootstrap/javascript.html#tabs) e un paio di modifiche ma ottengo 'indefinito non è una funzione' del carico.Bootstrap: 'TypeError undefined non è una funzione'/'non ha metodo' tab '' quando si usano le schede bootstrap

I file JS sono precaricati nell'ordine corretto (jQuery, libs/bootstrap/*, il mio file script.js/lo script mixato in html), i comandi jQuery standard (nascondi ecc.) Funzionano tutti bene così non lo fanno t sembra essere correlato all'opzione noConflict().

Che altro devo controllare?

+0

Quale versione di Rails stai usando? – lucapette

+0

quale versione di bootstrap stai cercando di usare? – periklis

+0

@lucapette: 3.1.2 –

risposta

33

In realtà sono riuscito a capire cosa stavo facendo male (ed è stata colpa mia).

Sono abituato ad utilizzare pre-jQuery Rails, quindi quando ho incluso i file Bootstrap JS non pensavo che includere la versione di jQuery in bundle con loro avrebbe causato problemi, comunque quando ho rimosso quel file JS tutto ha iniziato a funzionare perfettamente.

Lesson learned, triplo controllo quali file JS sono caricati, vedere se ci sono conflitti.

+0

Ditto, abbiamo avuto un problema simile e si è scoperto che un vecchio file JS era incluso. –

+0

Sarebbe utile se l'errore fosse più descrittivo, ma suppongo che questo sia ciò che SO è per :) –

+2

L'aggiornamento da jQuery 1.6.2 a jQuery 1.7.2 lo ha ordinato per me. –

18

assicurarsi che sei utilizzando la più recente jquery, e problema risolto

Ho incontrato questo problema con questo codice:

<script src="/scripts/plugins/jquery/jquery-1.6.2.min.js"> </script> 
<script src="/scripts/plugins/bootstrap/js/bootstrap.js"></script> 

Dopo il cambio a questo:

<script src="/scripts/plugins/jquery/jquery-1.7.2.min.js"> </script> 
<script src="/scripts/plugins/bootstrap/js/bootstrap.js"></script> 

Funziona bene

+0

Non c'è un modo per usare i plugin Bootstrap con jQuery 1.6.2? Abbiamo usato jQuery molto nel nostro progetto e l'aggiornamento alla versione 1.7.2 sta rompendo alcune cose, quindi non desideriamo aggiornarlo fino alla prossima versione. Tuttavia, desideriamo includere alcuni dei plug-in (Typeahead e Tooltip) nella nostra app. C'è un modo per usarli con jQuery 1.6.2.Qualche idea se qualcuno ha creato il suo equivalente che funziona con le versioni precedenti di jQuery. –

+0

Questo ha risolto il mio problema. – arjuncc

+0

risolto il mio problema anche – Rakeshyadvanshi

3

Probabilmente è l'uso del "on" evento che Bootstrap utilizzano un sacco ed è stato inserito in jQuery 1,7 http://api.jquery.com/on/

76

Ciò può essere causato anche se si include bootstrap.js prima jquery.js.

altri potrebbero avere lo stesso problema che ho fatto.

Includere jQuery prima del bootstrap.

+0

Scambia la linea e funziona perfettamente :) Grazie – Terry

+1

non funziona per me '// = richiede lib/jquery-2.1.0.min // = richiede lib/bootstrap.min' – WebQube

0

Possiamo provare utilizzando la libreria jQuery più recente. Ho avuto lo stesso problema. Ho usato jQuery-1.4.2.min prima e ho ricevuto l'errore. Successivamente ho usato la versione 1.9.1 e funziona. Grazie

Problemi correlati