Laravel mix和jQuery插件问题,$()。插件不是函数

时间:2018-02-04 19:56:07

标签: javascript jquery laravel-5 webpack laravel-mix

我使用Laravel mix来管理我的js文件,这是我的app.js:

window.$ = window.jQuery = require('./jquery-1.11.2.min.js');

require('./jquery.easing.1.3.js');
require('./bootstrap.min.js');
require('./SmoothScroll.js');
require('./jquery.scrollTo.min.js');
require('./jquery.localScroll.min.js');
require('./jquery.viewport.mini.js');
require('./jquery.countTo.js');
require('./jquery.appear.js');
require('./jquery.sticky.js');
require('./jquery.parallax-1.1.3.js');
require('./jquery.fitvids.js');
require('./owl.carousel.min.js');
require('./isotope.pkgd.min.js');
require('./imagesloaded.pkgd.min.js');
require('./jquery.magnific-popup.min.js');
require('./gmap3.min.js');
require('./wow.min.js');
require('./masonry.pkgd.min.js');
require('./jquery.simple-text-rotator.min.js');
require('./all.js');

all.js包含所有逻辑和内容,所以我的问题是一些 jQuery插件不起作用:

  

未捕获TypeError:$(...)。magnificPopup不是函数       在init_lightbox(index.js?id = f95f3419a2325063a526:11289)

当我按照上面的顺序以传统方式<script ...加载我的js时,所有工作都有效,但是当我需要时 他们抛出错误,请帮忙,谢谢你

编辑:

在ducument准备好之后(在all.js中),init函数会激活:

$(document).ready(function(){

        $(window).trigger("resize");            
        init_classic_menu();
        init_fullscreen_menu();
        init_side_panel();
        init_lightbox();
        init_parallax();
        init_shortcodes();
        init_tooltips();
        init_counters();
        init_team();
        initPageSliders();
        init_map();
        init_wow();
        init_masonry();
});

2 个答案:

答案 0 :(得分:2)

所以解决方案是通过npm而不是

安装jQuery
window.$ = window.jQuery = require('./jquery-1.11.2.min.js'); 

window.$ = window.jQuery = require('jquery');

解决了这个问题!

答案 1 :(得分:0)

看起来有a problem和Magnific-Popup

  

这是因为Modernizr将视频CSS类添加到HTML元素中,这是   与弹出窗口的选择器相同。

您是否碰巧在网站的任何位置使用了课程video?可能Magnific-Popup意外定位了您的HTML元素。