Javascript 将Require.js与JQuery插件结合使用-我应该将代码放在哪里来初始化插件?
所以我有一个关于Javascript 将Require.js与JQuery插件结合使用-我应该将代码放在哪里来初始化插件?,javascript,jquery,html,web,Javascript,Jquery,Html,Web,所以我有一个关于require.js和加载jquery插件的问题。现在据我所知,有一个common.js文件,我用来添加jQuery插件及其依赖项(jQuery),它使用了一个称为shim config的东西?我不太清楚这是怎么回事。无论如何,假设我需要加载一个名为layerslider.js的插件,在该插件的文档中,它告诉我以下代码: $("#layerslider").layerSlider({ pauseOnHover: false, autoPlayVideos: fal
require.js
和加载jquery插件的问题。现在据我所知,有一个common.js
文件,我用来添加jQuery插件及其依赖项(jQuery
),它使用了一个称为shim config的东西?我不太清楚这是怎么回事。无论如何,假设我需要加载一个名为layerslider.js
的插件,在该插件的文档中,它告诉我以下代码:
$("#layerslider").layerSlider({
pauseOnHover: false,
autoPlayVideos: false,
skinsPath: '../layerslider/skins/'
});
为了初始化这个插件,必须在body标记的末尾之前放入一个script标记。现在这是传统的方式。。。对于require.js,我不知道应该把这些代码放在哪里来初始化插件,我听说必须在插件本身中调用define函数才能使其与require.js兼容?谢谢你的帮助,非常感谢 在定义
require.js
配置的js文件中,在require.config.path
部分中放置如下内容:
'layerslider.greensock': '/assets/layerslider/js/greensock',
'layerslider.transitions': '/assets/layerslider/js/layerslider.transitions',
'layerslider.kreaturamedia': '/assets/layerslider/js/layerslider.kreaturamedia.jquery'
然后在垫片中定义依赖项:
'layerslider.greensock': { deps: ['jquery'] },
'layerslider.transitions': { deps: ['jquery'] },
'layerslider.kreaturamedia': { deps: ['jquery'] },
然后,只要在您定义的模块中根据需要开始使用layerslider(您需要包含layerslider的依赖项)
你一定有这样的东西
在html文件中:
<script data-main="/js/app" src="/assets/requirejs/js/require.js"></script>
非常感谢你,维克多!我用了你的方法,效果很好,我想我现在掌握了窍门。只是我不知道什么时候应该使用require或define。除此之外,我感谢你的回应!
(function() {
require.config({
baseUrl: '/js',
paths: {
jquery: '/assets/jquery/js/jquery',
'layerslider.greensock': '/assets/layerslider/js/greensock',
'layerslider.transitions': '/assets/layerslider/js/layerslider.transitions',
'layerslider.kreaturamedia': '/assets/layerslider/js/layerslider.kreaturamedia.jquery'
},
shim: {
'jquery': {
exports: 'jQuery'
},
'layerslider.greensock': {
deps: ['jquery']
},
'layerslider.transitions': {
deps: ['jquery']
},
'layerslider.kreaturamedia': {
deps: ['jquery']
}
}
});
require([
'require',
'jquery',
'layerslider.greensock',
'layerslider.transitions',
'layerslider.kreaturamedia'
], function(require, $) {
$("#layerslider").layerSlider({
pauseOnHover: false,
autoPlayVideos: false,
skinsPath: '../layerslider/skins/'
});
});
}());