Bootstrap genera un errore non rilevato: JavaScript di Bootstrap richiede jQuery [chiuso]


172

Sto cercando di utilizzare Bootstrap per creare un'interfaccia per un programma. Ho aggiunto jQuery 1.11.0 al <head>tag e ho pensato che fosse quello, ma quando avvio la pagina Web in un browser jQuery segnala un errore:

Uncaught Error: Bootstrap's JavaScript requires jQuery

Ho provato a utilizzare jQuery 1.9.0, ho provato con copie ospitate su più CDN, ma non riesco a farlo funzionare. Qualcuno può sottolineare cosa sto facendo di sbagliato?


28
Includi jQuery prima di Bootstrap ...
Adriano Repetti,

Nel mio caso, ho installato jquery prima di bootstrap e poi ha funzionato bene. Il solo fatto di includere prima di bootstrap non ha risolto l'errore.
Stuti Verma,

Nel mio caso, invece di aggiungere jquery nel piè di pagina (come nel modello bootstrap); L'ho aggiunto nell'intestazione. Problema risolto.
Adeel Raza Azeemi,

1
basta aggiungere <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.0/jquery.min.js" integrity="sha256-xNzN2a4ltkB44Mc/Jz3pT4iU1cmeR0FkXs4pru/JxaQ=" crossorigin="anonymous"></script>prima dello script di importazione bootstrap. Copia l'ultimo CDN qui: cdnjs.com/libraries/jquery
Tina Lee,

Risposte:


373

Prova questo

Cambia l'ordine dei file dovrebbe essere come sotto ..

<script src="js/jquery-1.11.0.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/wow.min.js"></script>

85
Non funziona per me. Ho jQuery prima di Bootstrap e ricevo comunque l'errore!
Verde,

2
ha funzionato ma ha una barra di scorrimento orizzontale nella parte inferiore
HimalayanCoder

1
Se non funziona da questo .. potrebbe essere che jQuery sia installato tramite Bower e quindi potrebbe essere necessario guardare sotto bower_components / jquery / dist / jquery.js .. la parte "dist" è quella che avevo trascurato.
Jax Cavalera,

Ha lavorato per me per un progetto Django-Oscar. Questo errore inizia ad apparire di punto in bianco. Suppongo che il pasticciare con un codice completamente non correlato possa cambiare la sequenza di rendering e innescare questo errore.
MadPhysicist,

apparentemente non ho notato che ho incluso bootstrap.js due volte - la prima volta era molto prima della query
JJ Roman

91

Se ti trovi in ​​un ambiente solo browser , usa la soluzione di SridharR .

Se ti trovi in ​​un ambiente Node / CommonJS + Browser (ad es. Elettrone, nodo-webkit, ecc.); il motivo di questo errore è che la logica di esportazione di jQuery verifica innanzitutto module, non window:

if (typeof module === "object" && typeof module.exports === "object") {
    // CommonJS/Node
} else {
    // window
}

Si noti che si esporta tramite module.exportsin questo caso; così jQuerye $non sono assegnati a window.

Quindi per risolvere questo, invece di <script src="path/to/jquery.js"></script>;

Basta assegnarlo da soli con una requiredichiarazione:

<script>
    window.jQuery = window.$ = require('jquery');
</script>

NOTA: se l'app per l'elettrone non è necessaria nodeIntegration, impostarla su in falsemodo da non aver bisogno di questa soluzione alternativa.


3
window.jQuery = window.$ = require('jquery');questo ha funzionato per me nel tentativo di assemblare una build per il brunch con jQuery 2 e Bootstrap 3. Tuttavia, ho impiegato solo diverse ore per trovare la risposta :(. Questo requisito cambia nelle versioni successive di jQuery?
rikkit

1
Non lo so, ma dal momento che questo non è un bug, non credo. Se l'app per l'elettrone non è necessaria nodeIntegration, impostala su in falsemodo da non aver bisogno di questa soluzione alternativa.
Onur Yıldırım,

1
Devi installare jquery usando npm install jquerynon con bower.
Syodage,

1
Utile per vedere come l'elettrone
gestisce

Ancora non lo capisco, ma Laravel usa lo stesso approccio: github.com/laravel/laravel/blob/v5.7.0/resources/js/…
Ryan

14

dovresti prima caricare jquery perché bootstrap usa le funzioni jquery. come questo:

<!doctype html>
<html>
    <head>
        <link type="text/css" rel="stylesheet" src="css/animate.css">
        <link type="text/css" rel="stylesheet" src="css/bootstrap-theme.min.css">
        <link type="text/css" rel="stylesheet" src="css/bootstrap.min.css">
        <link type="text/css" rel="stylesheet" href="css/custom.css">

<!--   Shuffle your scripts HERE  -->
        <script src="js/jquery-1.11.0.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
        <script src="js/wow.min.js"></script>
<!--   End  -->   

        <title>pyMeLy Interface</title>
    </head>
    <body>
        <p class="title1"><strong>pyMeLy</strong></p>
        <p class="title2"><em> A stylish way to view your media</em></p>
        <div style="text-align:center;">
            <button type="button" class="btn btn-primary">Movies</button>
            <button type="button" class="btn btn-primary btn-lg">Large button</button>
        </div>
    </body>
</html>

7

Devi aggiungere JQuery prima di aggiungere bootstrap-

<!-- JQuery Core JavaScript -->
<script src="lib/js/jquery.min.js"></script>

<!-- Bootstrap Core JavaScript -->
<script src="lib/js/bootstrap.min.js"></script>

4

Hai fornito un ordine errato per JAVASCRIPT e BOOTSTRAP

per convenzione bootstrap deve seguire la definizione del file jquery

<!-- JQuery Core JavaScript -->
<script src="lib/js/jquery.min.js"></script>
<script src="lib/js/jquery-ui.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="lib/js/bootstrap.min.js"></script>

1

Nel mio caso la soluzione è davvero sciocca e strana.

Il codice seguente è stato precompilato dal file _Layout.cshtml. (NON scritto da me)

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>

Ma, quando ho verificato nella cartella Scripts, jquery-1.10.2.min.js non era nemmeno disponibile. Quindi, sostituito il codice come sotto dove jquery-1.9.1.min.js è un file esistente:

<script src="~/Scripts/jquery-1.9.1.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>

1

Sto usando NodeJS e ho avuto lo stesso errore. Come le altre risposte, il problema era anche perché JQuery doveva essere caricato prima di Bootstrap; tuttavia, a causa delle caratteristiche di NodeJS, questa modifica doveva essere applicata nel file pipeline.js .

Il cambiamento in pipeline.js è stato così:

var jsFilesToInject = [
  // Dependencies like jQuery, or Angular are brought in here
  'js/dependencies/angular.1.3.js',
  'js/dependencies/jquery.js',
  'js/dependencies/bootstrap.js',
  'js/dependencies/**/*.js',
];

Sto anche usando grunt per aiutare, e ha cambiato automaticamente l'ordine nella pagina html principale:

<!--SCRIPTS-->
  <script src="/js/dependencies/angular.1.3.js"></script>
  <script src="/js/dependencies/jquery.js"></script>
  <script src="/js/dependencies/bootstrap.js"></script>
  <!-- other dependencies -->
<!--SCRIPTS END-->

Spero che sia d'aiuto! Non hai detto quale fosse il tuo ambiente, quindi ho deciso di pubblicare questa risposta.


1

Se si sta utilizzando, è require.jsnecessario aggiungere window.$ = window.jQuery = require('jquery')in app.js

OPPURE è possibile effettuare il caricamento del file dipendente dopo il caricamento del file principale .. come il concetto seguente

require.config({
    baseUrl: "scripts/appScript",
    paths: {
        'jquery':'jQuery/jquery.min',
        'bootstrap':'bootstrap/bootstrap.min' 
    },
   shim
    shim: {
        'bootstrap':['jquery'],
        },

    // kick start application
    deps: ['app']
});

Sopra il codice mostrato che bootstrapdipende da Jquerycosì ho aggiunto shime renderlo dipendente


0

Se il tuo codice sembra corretto, verifica che jQuery sia stato caricato correttamente sul tuo server. Nel mio caso, i file jQuery sono stati pubblicati sul server dal mio IDE, ma il server Web aveva solo uno stub di file da 0 KB. Senza contenuto, il server non è riuscito a fornire il file al browser.

Dopo aver ripubblicato il file e verificato che il server ha effettivamente ricevuto l'intero file, la mia pagina Web ha smesso di darmi l'errore.


0

È necessario aggiungere JQuery js prima di aggiungere il file jst bootstrap, poiché BootStrap utilizza la funzione jqueries. Quindi assicurati di caricare prima jquery js e poi il file js di bootstap.

<!-- JQuery Core JavaScript -->
<script src="app/js/jquery.min.js"></script>

<!-- Bootstrap Core JavaScript -->
<script src="app/js/bootstrap.min.js"></script>

0

Se ciò si verifica solo su Intranet IE, controlla le impostazioni di compatibilità e deseleziona "Visualizza i siti Intranet in modalità Compatibilità".

IE -> Impostazioni -> Compatibilità

inserisci qui la descrizione dell'immagine


0

Sui documenti ufficiali: https://electronjs.org/docs/faq#i-can-not-use-jqueryrequirejsmeteorangularjs-in-electron

<head>
  <script>
  window.nodeRequire = require;
  delete window.require;
  delete window.exports;
  delete window.module;
  </script>
  <script type="text/javascript" src="jquery.js"></script>
</head>

1
L'ho risolto su angular.json con il codice "" script ": [" node_modules / jquery / dist / jquery.min.js "," node_modules / bootstrap / dist / js / bootstrap.min.js "]"
AntWo

0

Avevo provato quasi tutti i metodi di cui sopra.

Finalmente risolto includendo il file

script src="{%static 'App/js/jquery.js' %}"

subito dopo aver caricato i file statici, ad esempio {% load staticfiles %}in base.html


0

Dopo aver lottato con questo problema ho fatto tre passi:

  1. Utilizzare le versioni jQuery ovunque tra 1.9.0 e 3.0.0
  2. Dichiarare il file jQuery prima di dichiarare il file Bootstrap
  3. Dichiarare questi due file di script nella parte inferiore dei <body></body>tag anziché in <head></head>. Questi hanno funzionato per me, ma potrebbero esserci comportamenti diversi in base al browser che stai utilizzando.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.