0

これは、ビューによって呼び出されるパーシャルです。

<li>
  <span class="content"><%= link_to "#{key.name} (#{key.description})", key %> (<%= key.id %>)</span>
  <span class="timestamp">
    Created <%= time_ago_in_words(key.created_at) %> ago.
  </span>
  <span class="content">
  <% if key.chords.count > 0 %>
    <%= link_to "show chords", '#', class: "showremovechords" %>
    <span> // </span>
  <% end %>
      <%= link_to "remove", key, method: :delete %>     
  </span>
  <div class="chordsholder">
    <ol class="chords">
    <% if key.chords.count > 0 %>
      <ol class="microposts">
        <%= render key.chords %>
      </ol>
    <% end %>
    </ol>
    </div>
</li>

これは、「コードを表示」ボタンがクリックされたときに div class= 'chordsholder' を表示するかどうかを切り替える jQuery (CoffeeScript を使用) です。

jQuery ->
  toggleChords = (e) ->
    e.preventDefault()
    if $(@).text('show chords')
        $(@).text('hide chords')
    else
        $(@).text('show chords')
    $(@).closest('li').find('.chordsholder').slideToggle()

  $('.showremovechords').click toggleChords

div は非表示で始まり、リンクは「show chords」というテキストで始まります

div の可視性の切り替えが機能し、最初にクリックしたときにテキストが「コードを非表示」に変更されますが、ステートメントの ELSE 部分が機能しないため、div がクリックされたときにテキストが「コードを表示」に戻りません。隠れた。なぜこれが起こっているのでしょうか?ありがとう

4

1 に答える 1