control deslizante de jquery que no aparecerá después de la primera llamada en una aplicación de rieles

Tengo una aplicación de Rails que te da una lista de personas.

  1. Cuando hace clic en un nombre, le muestra un div traído por una llamada ajax con una barra deslizante jquery, que puede ajustar.

  2. A continuación, puede cerrar ese div.

  3. Si lo vuelve a abrir (para el mismo usuario), la llamada ajax regresa para recuperar el div con el control deslizante

  4. todo está allí excepto la barra deslizante. ¿Por qué?

Código: dentro del index.html, se llama un div

<div id='relationships'>
  <%= render @relationships %>
</div>

el div tiene un parcial. aquí está el _relationship.html.erb parcial

<%= div_for relationship do %>
  <%= link_to image_tag('images/orange_man.jpg'), show_path(:id => relationship.id), :remote => true %>
<% end %>

cuando hace clic en la imagen 'hombre naranja', la solicitud js va, hasta la acción de mostrar:

def show
  @relationship = Relationship.find(params[:id])
  respond_to do |format|
    format.html
    format.js
  end
end

y luego, dado que es una llamada js, se llama show.js.erb

$("#relationship_<%= @relationship.id %>").append("<%= escape_javascript(render 'knows_me')%>");

que tiene el parcial know_me llamado. el _me_conoce.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>

¿Por qué la diapositiva aparece solo la primera vez? ¿Por qué no aparece después de deslizar hacia arriba el div y solicitarlo nuevamente?

Gracias por adelantado

preguntado el 03 de mayo de 12 a las 15:05

2 Respuestas

en lugar de usar div id use div class. estaba teniendo el mismo problema pero se resolvió después de usar la clase div

contestado el 03 de mayo de 12 a las 15:05

Resulta que el superingeniero tenía razón. La identificación del div ya estaba allí, así que como la oculté, no volverá a aparecer. Acabo de cambiar la identificación del div cuando me devolvieron la llamada y se resolvió el problema.

Respondido 22 ago 12, 21:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.