首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未捕获Rails:$(...).daterangepicker不是函数Rails

未捕获Rails:$(...).daterangepicker不是函数Rails
EN

Stack Overflow用户
提问于 2020-11-03 06:07:40
回答 1查看 281关注 0票数 0

我一直致力于将daterangepicker (https://www.daterangepicker.com/#usage)添加到rails应用程序中,并成功地使其正常工作。然而,今天,不知从哪里,我开始在我的控制台上收到Uncaught TypeError: $(...).daterangepicker is not a function错误,然后分页。自从它正常工作以来,我没有改变我的application.js、gemfile和样式表,希望在这里得到一些帮助。从一些研究来看,函数似乎在jquery之前就加载了,但我对为什么会发生这种情况感到困惑。

Gem文件:

代码语言:javascript
复制
gem 'jquery-rails'

gem 'jquery-ui-rails'

gem 'bootstrap', '~> 4.3.1'

gem 'momentjs-rails'

gem 'bootstrap-daterangepicker-rails'

application.js

代码语言:javascript
复制
//= require rails-ujs
//= require jquery
//= require jquery-ui
//= require moment
//= require bootstrap
//= require daterangepicker
//= require_tree .

application.scss

代码语言:javascript
复制
*= require jquery-ui
*= require daterangepicker

daterangepicker.js

代码语言:javascript
复制
$(function() {
  $('.daterange').daterangepicker({
    opens: 'left',
    locale: { format: 'YYYY/MM/DD'}
  }, function(start, end, label) {
    console.log("A new date selection was made: " + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD'));
  });
});

config/initializers/assets.rb

Rails.application.config.assets.precompile += %w( daterangepicker.js )

查看:

代码语言:javascript
复制
<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />

<%= javascript_include_tag "daterangepicker.js" %>
    <%= form_with scope: :export, url: history_export_path, remote: true do |f| %>
        <%= f.text_field :created_at_range, :class => 'form-control daterange', value: @created_at_range %>
        <%= f.submit "Filter Histories"%>
        <% @export.date_scope(@start_date, @end_date).order(sort_column + " " + sort_direction).each do |history| %>
            <tr>
                <td><%= history.success %></td>
                <td><%= history.message.to_s %></td>
                <td><%= history.created_at %></td>
            </tr>
        <% end %>
    <% end %>
EN

回答 1

Stack Overflow用户

发布于 2020-11-03 18:54:10

首先,认为您的daterangepicker js文件与daterangepicker插件文件存在混淆。将其重命名或在视图文件的末尾添加脚本标记。

将javascript_include_tag和stylesheet_link_tag添加到application.html.erb

#app/views/layout/application.html.erb

代码语言:javascript
复制
<%= stylesheet_link_tag 'application', media: 'all' %>
<%= javascript_include_tag 'application' %>

删除脚本标签、链接标签和javascript_include_tag 'daterangepicker‘您的视图,如果您在application.js和application.css中添加依赖项,则不需要这些标签

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64654020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档