0

ファイル内に次のコードがありjs.erbます::

var title = $('#kase_listing_title_show_determinator').attr('data-known-title-display');
$('#kase_list_core').fadeOut('slow');
$('#kase_list_core').html("<%= escape_javascript(render :partial => 'kase_details', :locals => {:kases => @cases, :displayingtitle => "title" }) %> ");
$('#kase_list_core').fadeIn('slow');

ここでやろうとしているのは、jquery を使用して div から data-* 属性を読み取り、この属性の値に基づいて部分的に何かを非表示/表示する必要があることです。

この値を Rails コードのローカル変数として渡したいと考えています。しかし、頭頂部が読み込まれるたびに、次のようになります。

#<#Class:0x007fed82319bc0>:0x007fed88f5ec40> エラーの未定義のローカル変数またはメソッド `displayingtitle'。

2 番目の変数が設定されない理由がわかりません。

たぶん私はここでばかげたことをしているだけです。助けてください。

部分コード:

この変数を含む1行を削除すると、すべて正常に動作します。

<% kases.each do |kase| %>

  <!-- This div is used to determine whether to show or hide the known/ unknown title mode -->
  <!-- Do Not Delete this div - it is used for the kases with video's and show diagnosis check boxes -->
  <div id="kase_listing_title_show_determinator" data-known-title-display="false" data-show-kase-with-video-only="false" ></div>

  <div id="kase_listing_display<%= "#{kase.id}" %>" onmouseover="kase_list_display_mouse_over(<%= "#{kase.id}" %>)" onmouseout="kase_list_display_mouse_out(<%= "#{kase.id}" %>)" class="kase_listing_display" >

    <% if displayingtitle == 0 %>NO<% else %>YES<% end %>

    <div id="kase_listing_known_diagnosis<%= "#{kase.id}" %>" class="mediumtitle gray" style="display:none;">
      <%= kase.knowntitle %>
    </div>

    <br>

    <div id="kase_listing_unknown_diagnosis<%= "#{kase.id}" %>" class="mediumtitle gray" >
      <%= kase.unknowntitle %>
    </div>

    <br>

    <div class="titles gray">
      Author: <%= Author.primaryauthor(kase.id).first.displaystring %>
    </div>

    <br>

    <div class="regularfont gray">
      <strong>Presentation:</strong><%= kase.presentation.truncate(100, :separator => ' ', :ommission => "...").html_safe unless kase.presentation.blank? %>&nbsp;<%= link_to "Read More", kase_path(kase.id), :class => "topmenulinks" %>
    </div>

    <br>

    <!-- # <%= image_tag("#{kase.id}/#{kase.kase_images.first.name}", :width => "150") %><br><br> -->
  </div>
<% end %>
4

1 に答える 1

0

これを試しましたか:タイトルの周りに「+」:

var title = $('#kase_listing_title_show_determinator').attr('data-known-title-display');
$('#kase_list_core').fadeOut('slow');
$('#kase_list_core').html("<%= escape_javascript(render :partial => 'kase_details', :locals => {:kases => @cases, :displayingtitle => "+title+" }) %> ");
$('#kase_list_core').fadeIn('slow');

データを取得するには、attr() の代わりに data() を実行することもできます。

var title = $('#kase_listing_title_show_determinator').data('known-title-display');
于 2012-08-16T22:18:08.780 に答える