我已经思考了几天了。
由于某种原因,我的semantic-ui jQuery无法工作。
所以这是我做的。
在我的webpack/environment.js中:
const { environment } = require('@rails/webpacker')
const webpack = require('webpack')
environment.plugins.append('Provide', new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
}))
module.exports = environment
我在 app/javascripts/packs 目录下添加了一个 custom.js 文件,其中包含以下代码:
$(document).on('turbolinks:load', function(){
$('.ui.dropdown').dropdown();
})
然后在我的应用程序.js文件中,位于app/javascripts/packs下,我有以下内容:
require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require("packs/custom")
在 Chrome 控制台中,我看到了以下内容:
Uncaught TypeError: $(...).dropdown is not a function
at HTMLDocument.<anonymous> (custom.js:3)
at HTMLDocument.dispatch (jquery.js:4588)
at HTMLDocument.elemData.handle (jquery.js:4408)
at Object../node_modules/turbolinks/dist/turbolinks.js.e.dispatch (turbolinks.js:75)
at r.notifyApplicationAfterPageLoad (turbolinks.js:994)
at r.pageLoaded (turbolinks.js:948)
at turbolinks.js:872
我认为我做得没问题,但出于某些原因这个解决方案根本不起作用。 你有什么想法是我做错了什么吗?
$('.ui.dropdown').dropdown()
的时候,提供下拉方法的 jQuery 插件还没有被初始化。 - Les Nightingill