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
Seine Art wie im Zusammenhang mit Bootstrap.
Vielen Dank im Voraus.
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.
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"
]
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>
Manisherde
//Call .noConflict() to restore JQuery reference.
jQuery.noConflict(); OR $.noConflict();
//Do something with jQuery.
jQuery( "div.class" ).hide(); OR $( "div.class" ).show();
Ein weiterer Tag in der Technik
Ich ging zurück zu jquery-2.2.4.min.js und es funktioniert.
129846 0 0 cookie-check Bootstrap – Uncaught TypeError: Eigenschaft „fn“ von undefined kann nicht gelesen werden yes
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