我有一个使用jQuery的文件,它仅用于测试目的:
(function($) {
"use strict"; // Start of use strict
// Configure tooltips for collapsed side navigation
$('.navbar-sidenav [data-toggle="tooltip"]').tooltip({
template: '<div class="tooltip navbar-sidenav-tooltip" role="tooltip" style="pointer-events: none;"><div class="arrow"></div><div class="tooltip-inner"></div></div>'
})
// Toggle the side navigation
$("#sidenavToggler").click(function(e) {
e.preventDefault();
$("body").toggleClass("sidenav-toggled");
$(".navbar-sidenav .nav-link-collapse").addClass("collapsed");
$(".navbar-sidenav .sidenav-second-level, .navbar-sidenav .sidenav-third-level").removeClass("show");
});
// Force the toggled class to be removed when a collapsible nav link is clicked
$(".navbar-sidenav .nav-link-collapse").click(function(e) {
e.preventDefault();
$("body").removeClass("sidenav-toggled");
});
// Prevent the content wrapper from scrolling when the fixed side navigation hovered over
$('body.fixed-nav .navbar-sidenav, body.fixed-nav .sidenav-toggler, body.fixed-nav .navbar-collapse').on('mousewheel DOMMouseScroll', function(e) {
var e0 = e.originalEvent,
delta = e0.wheelDelta || -e0.detail;
this.scrollTop += (delta < 0 ? 1 : -1) * 30;
e.preventDefault();
});
// Scroll to top button appear
$(document).scroll(function() {
var scrollDistance = $(this).scrollTop();
if (scrollDistance > 100) {
$('.scroll-to-top').fadeIn();
} else {
$('.scroll-to-top').fadeOut();
}
});
// Configure tooltips globally
$('[data-toggle="tooltip"]').tooltip()
// Smooth scrolling using jQuery easing
$(document).on('click', 'a.scroll-to-top', function(event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: ($($anchor.attr('href')).offset().top)
}, 1000, 'easeInOutExpo');
event.preventDefault();
});
})(jQuery); // End of use strict
和webpack抱怨:
Failed to compile.
./src/SbAdmin/js/sb-admin.js
Line 45: 'jQuery' is not defined no-undef
Search for the keywords to learn more about each error.
我已将jquery
添加到index.js
中,但为何仍抱怨?
我用https://github.com/facebook/create-react-app创建了reactjs应用程序
index.js
如下所示:
import React from 'react';
import ReactDOM from 'react-dom';
/* Import css */
import 'font-awesome/css/font-awesome.css';
import './index.css';
/* Import javascript */
import 'bootstrap';
import 'jquery';
import './SbAdmin/js/sb-admin';
import App from './App/AppContainer.bs';
import registerServiceWorker from './registerServiceWorker';
ReactDOM.render(<App />, document.getElementById('root'));
registerServiceWorker();
如您所见,jQuery
已导入
我做错了什么?
答案 0 :(得分:3)
在您使用jQuery的文件中只包含行
import jQuery from 'jquery'
因此,您不需要将它包含在app.js文件中,只包含您正在使用它的文件。