Bootstrap – Uncaught TypeError: Eigenschaft „fn“ von undefined kann nicht gelesen werden

Lesezeit: 2 Minuten

Benutzer-Avatar
Nurdin

Ich verwende jquery, backbonejs, underscorejs und Bootstrap für mein Firmenprojekt. Manchmal habe ich diesen Fehler in Chrome.

Nicht erfasster TypeError: Eigenschaft „fn“ von undefined kann nicht gelesen werden

Mein Shim ist so in meiner main.js

require.config({
paths: {
    jquery: 'libs/jquery/jquery',
    underscore: 'libs/underscore/underscore',
    backbone: 'libs/backbone/backbone',
    backboneeventbinder: 'libs/backbone.eventbinder.min',
    bootstrap: 'libs/bootstrap',
    jquerytablesorter: 'libs/tablesorter/jquery.tablesorter',
    tablesorter: 'libs/tablesorter/tables',
    ajaxupload: 'libs/ajax-upload',
    templates: '../templates'
},
shim: {
    'backbone': {
        deps: ['underscore', 'jquery'],
        exports: 'Backbone'
    },
    'underscore': {
        exports: '_'
    },
}
});
 require(['app', ], function(App) {
  App.initialize();
});

Ich füge bereits .noConflict() für jquery, underscorejs und backbonejs ein.

Meine app.js

// Filename: app.js
define(['jquery', 'underscore', 'backbone', 'backboneeventbinder', 'bootstrap', 'ajaxupload', 'router', // Request router.js
], function($, _, Backbone, Bootstrap, Backboneeventbinder, Ajaxupload, Router) {
    $.noConflict();
    _.noConflict();
    Backbone.noConflict();
    var initialize = function() {
            Router.initialize();
        };
    return {
        initialize: initialize
    };
});

Dies ist ein Screenshot von meinem Chrome
Geben Sie hier die Bildbeschreibung ein

Seine Art wie im Zusammenhang mit Bootstrap.

Vielen Dank im Voraus.

  • Wie benutzt man „noConflict“?

    – Nurdin

    16. Dezember 2013 um 8:21 Uhr

  • Diese Antwort kann vielleicht nützlich sein

    – chridam

    16. Dezember 2013 um 8:39 Uhr

Benutzer-Avatar
Nurdin

Sie müssen jquery zuerst vor dem Bootstrap laden.

require.config({
    paths: {
        jquery: 'libs/jquery/jquery',
        underscore: 'libs/underscore/underscore',
        backbone: 'libs/backbone/backbone',
        bootstrap: 'libs/bootstrap',
        jquerytablesorter: 'libs/tablesorter/jquery.tablesorter',
        tablesorter: 'libs/tablesorter/tables',
        ajaxupload: 'libs/ajax-upload',
        templates: '../templates'
    },
    shim: {
        'backbone': {
            deps: ['underscore', 'jquery'],
            exports: 'Backbone'
        },
        'jquery': {
            exports: '$'
        },
        'bootstrap': {
            deps: ['jquery'],
            exports: '$'
        },
        'jquerytablesorter': {
            deps: ['jquery'],
            exports: '$'
        },
        'tablesorter': {
            deps: ['jquery'],
            exports: '$'
        },
        'ajaxupload': {
            deps: ['jquery'],
            exports: '$'
        },
        'underscore': {
            exports: '_'
        },
    }
});
require(['app', ], function(App) {
    App.initialize();
});

Funktioniert wie Charme! schnell und einfach behoben.

  • Richtig, Sie müssen zuerst die jquery laden 😀

    – Fiido93

    31. Dezember 2015 um 5:03 Uhr

lösen Sie dieses Problem für eckig

"styles": [
              "src/styles.css",
              "node_modules/bootstrap/dist/css/bootstrap.min.css"
            ],
            "scripts": [
              "node_modules/jquery/dist/jquery.min.js",
              "node_modules/bootstrap/dist/js/bootstrap.min.js"
            ]

Benutzer-Avatar
Duc Babe

Mein Weg ist das Importieren der jquery-Bibliothek.

<script
  src="https://code.jquery.com/jquery-3.3.1.js"
  integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
  crossorigin="anonymous"></script>

Um dieses Problem zu lösen, rufen Sie einfach die jQuery-Datei vor der Bootstrap-Datei auf

Importieren Sie zuerst jquery vor dem Bootstrap:

<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.js"></script>
<script src="js/bootstrap.bundle.js"></script>

Benutzer-Avatar
Manisherde

//Call .noConflict() to restore JQuery reference.

jQuery.noConflict(); OR  $.noConflict();

//Do something with jQuery.

jQuery( "div.class" ).hide(); OR $( "div.class" ).show();

Benutzer-Avatar
Ein weiterer Tag in der Technik

Ich ging zurück zu jquery-2.2.4.min.js und es funktioniert.

1298460cookie-checkBootstrap – Uncaught TypeError: Eigenschaft „fn“ von undefined kann nicht gelesen werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy