Ruby on Rails 6.0.2.2 版如何使用jQuery hover() 方法

Posted

技术标签:

【中文标题】Ruby on Rails 6.0.2.2 版如何使用jQuery hover() 方法【英文标题】:How to use jQuery hover() Method for Ruby on Rails 6.0.2.2 version 【发布时间】:2020-07-17 14:24:31 【问题描述】:

我想在 Rails 上学习 ruby​​,我正在处理一些项目。当我用鼠标悬停在照片上时,我想看到解释。我知道,我如何使用 jquery hover 但只有 rails 5.2 版本 但我有 rails 6.0.2.2 版本。现在我如何在 rails 6.0 中使用悬停。 2.2 版本 。您可以在屏幕截图上看到错误消息和我的照片。最后感谢您的帮助

错误截图 = [[1]: https://i.stack.imgur.com/CjTUF.png]

jquery Hover 的相关代码行 Shot.js

shotHover() 
                $('.shot').hover(function() 
                    $(this).children('.shot-data').toggleClass('visible');
                );
            

Shots.shotHover();

application.js

// This file is automatically compiled by Webpack, along with any other files
// present in this directory. You're encouraged to place your actual application logic in
// a relevant structure within app/javascript and only use these pack files to reference
// that code so it'll be compiled.

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



// Uncomment to copy all static images under ../images to the output folder and reference
// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)
// or the `imagePath` JavaScript helper below.
//
// const images = require.context('../images', true)
// const imagePath = (name) => images(name, true)

index.html.erb

<%= link_to shot, class: "shot" do %>
          <%= image_tag(shot.user_shot_url) %>
          <div class="shot-data">
            <h3 class="shot-title"><%= shot.title %></h3>
            <div class="shot-description"><%= truncate(shot.description, length: 60) %></div>
            <div class="shot-time">
              <%= time_ago_in_words(shot.created_at) %>
            </div>
          </div>
        <% end %>

我在 Gemfile 中有这样的 jquery。 宝石文件

gem 'jquery-rails', '~> 4.3', '>=4.3.1'

【问题讨论】:

Rails 6 将 webpacker 用于 javascript 资产。看到这个问答:***.com/questions/54905026/… 【参考方案1】:

我找到了解决方案。 Rails 6 有一些新的创新。

在我们的 Rails 应用程序中运行以下命令以添加 jQuery。

$ yarn add jquery

它将jquery的依赖保存到我们的应用程序中。

现在要验证是否安装了 jquery,请检查以下文件

package.json => "jquery": "^3.3.1",
yarn.lock => jquery@^3.3.1:

在 environment.js 中添加以下代码

const webpack = require('webpack')
environment.plugins.prepend('Provide',
  new webpack.ProvidePlugin(
    $: 'jquery/src/jquery',
    jQuery: 'jquery/src/jquery'
  )
)

现在,我们的文件看起来像,

const  environment  = require('@rails/webpacker')

const webpack = require('webpack')
environment.plugins.prepend('Provide',
  new webpack.ProvidePlugin(
    $: 'jquery/src/jquery',
    jQuery: 'jquery/src/jquery'
  )
)

module.exports = environment

在 application.js 文件中需要 jquery。 看起来,

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

就是这样。你可以在你的项目中使用 jquery

【讨论】:

以上是关于Ruby on Rails 6.0.2.2 版如何使用jQuery hover() 方法的主要内容,如果未能解决你的问题,请参考以下文章

如何使下拉表单在 Ruby On Rails 中工作

ruby on rails如何安装

如何在 ruby​​ on rails 中访问 rails 助手和嵌入资产 javascript 文件中的 ruby​​?

Ruby-on-Rails:如何摆脱“你被重定向”页面

如何解决 ruby​​ on rails 版本差异(向后/向前兼容性)

如何在 ruby​​ on rails 4 中创建高级搜索