字体用户界面:$(...)。日历不是函数 [英] Fomantic UI: $(...).calendar is not a function

查看:6
本文介绍了字体用户界面:$(...)。日历不是函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我运行的是Rails版本5.2.4以下是我在Ruby on Rails中查看的相关部分

      <div class="two fields">

            <div class="field">
                <label>Start date and time</label>
                <div class="ui calendar" id="standard_calendar">
                    <div class="ui input left icon">
                        <i class="calendar icon"></i>
                        <input type="text" placeholder="Date/Time">
                    </div>
                </div>
            </div>

            <div class="field">
            <label>End time</label>
                <div class="ui calendar" id="time_calendar">
                    <div class="ui input left icon">
                        <i class="time icon"></i>
                        <input type="text" placeholder="Time">
                    </div>
                </div>
            </div>
        </div>

我将以下代码放在我的视图下面

<script>
console.log("Before scripts run")
$('#standard_calendar').calendar();
$('#time_calendar').calendar({type: 'time'});
console.log("After scripts run")
</script>

为了确保代码运行,我放置了一个console.log,它运行得很好。然而,当我尝试运行这两个jQuery脚本时,它停在第一个脚本并说:

$(...).calendar is not a function

我已经安装了gem'fomantic-ui-sass''jquery-rails',这两个工具都在工作(至少fomatics的css是)。我还将它们添加到了Applation.js文件夹中,如下所示:

//
//= require rails-ujs
//= require activestorage
//= require turbolinks
//= require_tree .
// Loads all Semantic javascripts
//= require semantic-ui
// Load jquery
// = require jquery
// = require jquery_ujs

我的app/views/layouts/application.html.erb


<!DOCTYPE html>
<html>
  <head>
    <%= favicon_link_tag 'spring-cleaners-logos/profile.png' %>
    <title>Spring Cleaners - <%= yield(:title) %></title>
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
  </head>

  <body>
    <div class="ui secondary  menu">
      <a class="item" href="/">
        <%= image_tag 'spring-cleaners-logos/profile.png', alt: 'Logo', class: 'image' %>
        Spring Cleaners
      </a>
      <div class="right menu">
        <a class="item">
          <i class="envelope icon"></i>
          Messages
        </a>
        <a class="item">
          <i class="user icon"></i>
          My Account
        </a>
        <a class="ui item" href="/logout">
          Logout
        </a>
      </div>
    </div>

    <h1><%= yield(:title) %><h1>

    <%= yield %>

  </body>
</html>

为什么它不起作用?我如何修复?

推荐答案

您的application.js有两个潜在问题。

  1. 以下几行使用// =(注意空格)而不是//=。Rails指南The Asset Pipeline - 2.4 Manifest Files and Directives特别说明了如何使用//=

    // = require jquery
    // = require jquery_ujs
    
  2. 如果Fomatics-UI依赖于jQuery的存在,您应该在加载jQuery之后需要它。否则,它会尝试将自身注册为jQuery扩展,或者在不加载jQuery的情况下使用jQuery方法。

    这意味着移动:

    // Loads all Semantic javascripts
    //= require semantic-ui
    

    下图:

    // Load jquery
    //= require jquery
    //= require jquery_ujs
    

这篇关于字体用户界面:$(...)。日历不是函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆