【Ruby on Rails】Rate.js를 사용할 때 별이 늘어나는 버그 해소법(jQuery)

대상자


  • 리뷰 평가를 구현하는 사람
  • 별이 증가하는 버그를 구현하는 사람



  • 목적



    ...

    실제 절차와 예



    1. 결론(해결책)



    script 태그에 $('').empty();를 추가하면 OK!

    아래의 예입니다.
    div.rate의 부분은 사람에 따라 다르다고 생각합니다.
        <script>
          $(document).on("turbolinks:load", function() {
          $('div.rate').empty(); #これを追加しました
          $('div.rate').raty({
              size: 14,
              starOff:  '<%= asset_path('star-off.png') %>',
              starOn : '<%= asset_path('star-on.png') %>',
              starHalf: '<%= asset_path('star-half.png') %>',
              half: true,
              readOnly: true,
            });
          });
        </script>
    

    2. 원인


  • 별이 표시된 페이지에서
  • 다른 페이지로 전환
  • 그런 다음 다시 별이 표시되는 페이지로

  • 이 사이에 별이 삭제되지 않은 (저장된 채로??)가 원인인 것 같습니다.

    3..empty 메소드 정보



    아래 기사에 따르면

    jQuery 객체에서 지정한 요소의 내용(자손 요소나 텍스트 등)을 삭제합니다. jQuery 객체에 지정된 요소는 삭제하지 않습니다.

    그리고있었습니다.

    즉,
    페이지를 다시 로드할 때
  • 우선 아이 요소인 "div.rate"를 .empty로 삭제
  • 그런 다음 .rate로 별표

  • 되어 별 5개의 표시가 유지되고 있습니다.

    참조



    empty 메소드 - 초보자용 jQuery 입문 강좌

    작성자 코멘트



    이번에는 「어떤 흐름으로 그랬는가」라는 점에 중점을 두어 기사를 써 보았습니다. 다음번 이후의 투고에서도 어떤 순서로 그랬는지를 모호하게 하지 않도록 이해하면서 써 가고 싶습니다.

    별이 늘어나면 뭔가 웃어요. 웃음

    내 프로필



    프로그래밍 학습 경력 3개월째의 계정입니다!
    프로그래밍 스쿨에서 배운 내용이나 자신이 망설인 부분 등의 출력을 위해 발신하고 있습니다.
    또, 프로그래밍 초학자에게 알기 쉽고, 간결하게 정리해 정보 공유할 수 있으면이라고 생각하고 있습니다.
    만약, 투고한 기사안에 잘못등 있으면, 코멘트란에서 교수 받을 수 있으면 다행입니다. 

    좋은 웹페이지 즐겨찾기