jQuery滑块,在Rails应用程序上首次调用后不会显示

jquery slider that wont show up after first call on a rails app

本文关键字:调用 显示 程序上 滑块 Rails 应用程序 应用 jQuery      更新时间:2023-09-26

我有一个rails应用程序,可以给你一个人员列表。

  1. 当您单击名称时,它会显示一个由带有 jquery 滑块的 ajax 调用带来的div,您可以对其进行调整。

  2. 然后,您可以关闭该div。

  3. 如果您再次打开它(对于同一用户),ajax 调用将返回以使用滑块检索div

  4. 除了滑块之外,一切都在那里。为什么?

法典:在索引.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 %>

当您单击图像"橙色人"时,JS请求将变为显示操作:

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')%>");

knows_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 并再次请求它后它不会出现?

提前致谢

而不是使用div id使用div class。 我遇到了同样的问题,但在使用div class

class="answers"后解决了>

事实证明超级工程师是对的。div 的 id 已经在那里,所以自从我隐藏它以来,它不会再次出现。我只是在收到回电时更改了div 的 id,问题解决了。