font awesome 토글 버튼 만들기
                                            
                                                
                                                
                                                
                                                
                                                
                                                 8764 단어  자바스크립트RailsjQueryFontAwesome
                    
font awesome에서 toggleButton을 만드는 데 어려움을 겪었습니다.
힘든 점

ex) "far fa-3x fa-bookmark"가 "fa-3x fa-bookmark far"가 되고 classList[0]이 fa-3x로 변화합니다.
해결책
append로 HTML을 통째로 바꾸는 것이 아니라, toggleClass로 클래스명만을 변경하면(자) 적절하게 CSS가 적응되어 해결할 수 있었습니다.
toggleClass는 여러 클래스를 동시에 지정할 수있었습니다!
"far fa-3x fa-bookmark"와 통째로 지정하는 것으로 class명의 순서를 바꾸는 것 토글 할 수 있었습니다.
그 결과 classList[0]에서 far을 소득하는 데 성공했습니다!

실제 코드
다음은 javascript의 비동기 통신을 이용한 즐겨 찾기 기능 구현
_wordbook.html.haml
- if defined? fav
  - fav_id = fav.wordbook.id
- id = wordbook.id
- if user_signed_in?
    .wordbook__fav{"data-fav": fav_id}
      = button_tag do
        - if fav_id == id
          = icon("fas fa-3x", "bookmark")
        - else
          = icon('far fa-3x', 'bookmark')
fav.js
$(function(){
  // いいねの生成
  function like (id, status, button){
    var wordbook_id = id;
    var url = `api/wordbooks/${wordbook_id}`;
    var method = status == "far" ? "PATCH" : "DELETE";
    $.ajax({
      url: url,
      type: method
    })
    .done(function(){
      button.toggleClass("far fa-3x fa-bookmark");
      button.toggleClass("fas fa-3x fa-bookmark");
    })
    .fail(function(){
      window.alert("error");
    });
  }
  $(".wordbook__fav").on("click",function(){
    var id = $(this).parent()[0].dataset.id;
    var button = $(this).find("i");
    var status = button[0].classList[0];
    like(id, status, button);
  });
});
api/wordbooks_controller.rb
class Api::WordbooksController < ApplicationController
  def update
    @fav = Favorite.create(user_id: current_user.id,wordbook_id: params[:id])
  end
  def destroy
    @fav = Favorite.where(wordbook_id: params[:id]).find_by(user_id: current_user.id)
    @fav.destroy
  end
end
환경
Ruby 2.5.1
Ruby on Rails 5.2.3
젬 "jquery-rails"
gem "font-awesome-sass"
Reference
이 문제에 관하여(font awesome 토글 버튼 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/dunkelrots/items/863fdbaecd48b1ac3402텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)