【问题标题】:How to include jquery-ui in Rails 6 project?如何在 Rails 6 项目中包含 jquery-ui?
【发布时间】:2020-11-19 22:47:28
【问题描述】:

我正在使用 Rails 6.0.3.2 和 jquery-ui 1.12。

仍然无法使其工作: Uncaught TypeError: $(...).datepicker is not a function

试过了:

我。编辑 config/webpack/environment.js

最新版本:

environment.plugins.prepend('Provide',
  new webpack.ProvidePlugin({
  "$":"jquery",
  "jQuery":"jquery",
  "window.jQuery":"jquery",
  Popper: ['popper.js', 'default']
  }))

二。导入和要求:

require( "jquery-ui/ui/widgets/datepicker" );

import "jquery-ui/ui/widgets/datepicker"

我知道有很多类似我的问题。但是,它们中的大多数已经过时了。尝试了一百万种具有相同答案的组合:“NOT A FUNCTION”

请帮助提供有效的配置和导入/需要说明!提前致谢!

【问题讨论】:

标签: jquery ruby-on-rails jquery-ui


【解决方案1】:

最后我想出了如何让所有这些东西工作(我的意思是 bootstrap、jquery-ui 和其他)。我希望我能花不到半天的时间来收集每一滴食谱。

我的config/webpack/environment.js

const { environment } = require('@rails/webpacker')
//const { VueLoaderPlugin } = require('vue-loader')
//const vue = require('./loaders/vue')

//environment.plugins.prepend('VueLoaderPlugin', new VueLoaderPlugin())
//environment.loaders.prepend('vue', vue)
const webpack = require('webpack')

module.exports = environment

我注释掉了 Vue 部分,以防你更喜欢其他东西。

我的application.js

require("@rails/ujs").start();
require("turbolinks").start();
require("@rails/activestorage").start();
require("channels");

import * as $ from 'jquery';
import * as bootstrap from 'bootstrap';
import * as datepicker from 'jquery-ui/ui/widgets/datepicker';

document.addEventListener("turbolinks:load", function() {
  if ($('#termsAcceptBtn').length) {
    $('#termsAcceptBtn').addEventListener("click", function() {
      $('#termsModal').modal('show');
    });
  }
});

$(document).on('turbolinks:load', function() {
  $("#user_birth").datepicker();
});

我希望它可以帮助某人节省半天。

【讨论】:

    猜你喜欢
    • 2018-08-08
    • 2019-06-25
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 2012-09-03
    • 1970-01-01
    相关资源
    最近更新 更多