我正在使用最新版本 6.1.3 和 ruby 版本 2.7.2 创建一个 rails 应用程序。我有一个旧主题,我想将它集成到我的应用程序中。
但不知何故,我无法成功整合它。请在下面检查我的错误和集成步骤。
一体化
应用程序/javascript/packs/application.js
import Rails from "@rails/ujs"
import Turbolinks from "turbolinks"
import * as ActiveStorage from "@rails/activestorage"
import "channels"
import "jquery"
import "popper.js"
import "bootstrap"
require("./external/imagesloaded.min")
require("./external/isotope.min")
require("./external/simpleLightbox.min")
require("./external/theme")
Rails.start()
Turbolinks.start()
ActiveStorage.start()
所有自定义主题 js 文件都存储在app/javascript/packs/external
应用程序/javascript/packs/external/theme.js
;(function($){
"use strict"
/* Isotope Fillter js */
console.log("file execute successfully");
function gallery_isotope(){
if ( $('.gallery_f_inner').length ){
// Activate isotope in container
$(".gallery_f_inner").imagesLoaded( function() {
$(".gallery_f_inner").isotope({
layoutMode: 'fitRows',
animationOptions: {
duration: 750,
easing: 'linear'
}
});
});
// Add isotope click function
$(".gallery_filter li").on('click',function(){
$(".gallery_filter li").removeClass("active");
$(this).addClass("active");
var selector = $(this).attr("data-filter");
$(".gallery_f_inner").isotope({
filter: selector,
animationOptions: {
duration: 450,
easing: "linear",
queue: false,
}
});
return false;
});
}
}
setTimeout(() => {
gallery_isotope();
$('.imageGallery1 .light').simpleLightbox();
}, 800);
/* Simple LightBox js */
})(jQuery)
我尝试了这个解决方案,但我有 7 个自定义 js 文件,每个文件至少有 16 种不同的函数,因此手动转换所有 js 文件非常困难。
请指导我哪里错了,并建议我一个可行的解决方案。提前致谢。