質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

647閲覧

いいねをクリックしたことを判定する方法

atmosphere

総合スコア7

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/05/23 11:11

いいね機能をActionCableで実装しようとしています。まず、いいねをクリックしたというのを判定しようとしているのですが、それが上手く行かないです。いいねのセレクタをクリックした時に、console.logが表示されるかを確かめようとしましたが。現在いいねはAjaxで実装しているのでそれが原因かもしれないと考えています。

room_channel.js

import consumer from "./consumer"; // $(document).on("turbolinks:render", $(function (){ const chatChannel = consumer.subscriptions.create({ channel: 'RoomChannel',room: $('#messages').data('room_id') },{ connected() { // Called when the subscription is ready for use on the server }, disconnected() { // Called when the subscription has been terminated by the server }, received(data) { const element = document.documentElement; let pre_scrollHeight = element.scrollHeight; $('#messages').append(data['message']); //メッセージ送信後 let expand_error = (pre_scrollHeight - element.scrollTop) - element.clientHeight; if(expand_error >= -1 && expand_error <= 1){ let bottom = element.scrollHeight - element.clientHeight; element.scrollTop = bottom; } return; // Called when there's incoming data on the websocket for this channel }, speak: function(message,user_name) { return this.perform('speak',{ message: message, user_name: user_name }); } }); $(document).on('click', '.chat_sendbtn', function(event) { let content = $('.speaker_txt').val(); if (content === ""){ alert("空白は送信できません"); return event.preventDefault(); } else{ chatChannel.speak(content, $("#user_name").val()); $('.speaker_txt').val(''); $.removeCookie('speaker'); return event.preventDefault(); } }); $(document).on('click', ".like-link", function(event) { console.log("いいね"); }); });

_like.html.erb

<span class="like-link ml-2" id="like-link-<%= message.id %>"> <% @likes_count = Like.where(message_id: message.id).count %> <% if message.likes.where(ip: request.remote_ip).empty? %> <%= link_to message_likes_path(message), method: :post, remote: true do %> <i class="fas fa-thumbs-up like-btn"></i> <% end %> <% else %> <%= link_to message_likes_path(message), method: :delete, remote: true do %> <i class="fas fa-thumbs-up unlike-btn"></i> <% end %> <% end %> <%= @likes_count %> </span>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

winterboum

2021/05/28 11:39

viewのどこをclickするとJSのどこが呼ばれる(はず)のですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問