【问题标题】:jquery slider that wont show up after first call on a rails app在第一次调用rails应用程序后不会显示的jquery滑块
【发布时间】:2012-05-03 14:09:49
【问题描述】:

我有一个 Rails 应用程序,可以为您提供人员列表。

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

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

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

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

代码: 在 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 %>

当您单击图像“橙子”时,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')%>");

调用了 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 并再次请求后它不会显示?

提前致谢

【问题讨论】:

    标签: javascript jquery ruby-on-rails ajax slider


    【解决方案1】:

    而不是使用 div id 使用 div 类。我遇到了同样的问题,但使用 div 类后解决了

    【讨论】:

      【解决方案2】:

      事实证明,超级工程师是对的。 div 的 id 已经存在,所以自从我把它藏起来后,它就不会再出现了。我只是在收到回调并解决问题时更改了 div 的 id。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-24
        相关资源
        最近更新 更多