作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个网页,并开始在我的构建过程中使用 webpack。我已经设法使用通过 npm 下载的 slick-carrousel 插件,但无法让 fancybox 工作!
我已经通过 npm 下载了它并按照 documentation 中的说明导入了它。 :
var $ = require("jquery");
var slick = require("slick-carousel");
var fancybox = require("fancybox")($);
$(".filtros__filtrar").on('click', function() {
$.fancybox.open({
src : '#tns-filtros',
type : 'inline',
opts : {
smallBtn: false
}
});
});
console.log(fancybox); -> undefined
console.log(slick); -> {}
module: {
rules: [
{
test: /fancybox[\/\\]dist[\/\\]js[\/\\]jquery.fancybox.cjs.js/,
use: "imports-loader?jQuery=jquery,$=jquery,this=>window"
}
]
}
最佳答案
行。我设法解决了这样的问题。
首先,我意识到我安装了Fancybox 2而不是 Fancybox 3所以我卸载了第一个并安装了最后一个(感谢@Mikhail Shabrikov 让我意识到这一点!)。
npm uninstall fancybox --save-dev
npm install @fancyapps/fancybox --save
其次,我挖掘了 Fancybox 原始代码,发现它需要将 jQuery 作为
window.jQuery
传递给它。而不是
$
所以在我的要求中,我这样做了:
var $ = require("jquery");
window.jQuery = $; <-- This is what do the magic!!
var slick = require("slick-carousel");
require("@fancyapps/fancybox");
瞧!现在一切正常。
关于webpack - 如何在 webpack 中使用 fancybox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46922181/
我是一名优秀的程序员,十分优秀!