人のリストを表示する Rails アプリがあります。
名前をクリックすると、調整可能なjqueryスライダーバーを使用して、ajax呼び出しによってもたらされたdivが表示されます。
その後、その div を閉じることができます。
(同じユーザーに対して)もう一度開くと、ajax呼び出しが戻って、スライダーでdivを取得します
スライダーバー以外はすべてそこにあります。なぜ?
コード: index.html 内で、div が呼び出されます
<div id='relationships'>
<%= render @relationships %>
</div>
divには部分があります。ここに部分的な _relationship.html.erb があります
<%= div_for relationship do %>
<%= link_to image_tag('images/orange_man.jpg'), show_path(:id => relationship.id), :remote => true %>
<% end %>
画像「orange man」をクリックすると、js リクエストが show アクションまで進みます。
def show
@relationship = Relationship.find(params[:id])
respond_to do |format|
format.html
format.js
end
end
そしてjs呼び出しなので、show.js.erbが呼び出されます
$("#relationship_<%= @relationship.id %>").append("<%= escape_javascript(render 'knows_me')%>");
know_me パーシャルが呼び出されています。_knows_me.html.erb
<div id ="relationship_knows_me_#{@relationship.id}">
<a class="close">X</a>
*****this is where you click to hide the div*****
<% div_slider_id = "slider_knows_me_#{@relationship.id}" %>
<%= form_tag('/relationships/update/', :remote => true) do %>
<%= hidden_field_tag 'relationship_id', value = @relationship.id %>
<div id="<%= div_slider_id %>" class="sliders"></div>
<% end %>
</div>
<script type='text/javascript'>
$('a.close').on("click", function() {
$(this).parent().slideUp();
});
$(document).ready( function() {
$(function() {
$( "#<%= div_slider_id %>" ).slider({
orientation: "horizontal",
range: "min",
value: <%= @knows_me %>,
min: 0,
max: 100,
stop: function( event, ui ) {
$( "#<%= amount_id %>" ).val( ui.value );
$(this).submit();
}
});
});
});
</script>
スライドが最初にしか表示されないのはなぜですか? div をスライドアップして再度リクエストした後に表示されないのはなぜですか?
前もって感謝します