2009-02-12 18 views
7

Ocultar un DIV sería bastante fácil en Javascript, pero ¿hay alguna forma de hacerlo? Puedo pensar en algunas formas de hacerlo llamando Javascript desde un parcial (.erb), por supuesto, pero preferiría no escribir ningún Javascript en absoluto. ¿Posible?Ocultar un DIV [Rieles]

Editar: La página se carga y me gustaría ocultar el DIV después (bueno, en) una llamada Ajax, así que estoy en uno de esos bloques render :update.

+0

cómo/cuándo lo quieres oculto? ¿En carga, después de un evento o después de una llamada ajax? –

+0

editando la pregunta ahora –

+0

gracias Luca. ¿Porque es malo? Por favor, elabore para que pueda saber si tiene algo que decir o simplemente está despotricando. –

Respuesta

11

O bien, en su opinión:

Para un div especificada clase:

<%= link_to_function "Toggle", "$('.some_div').toggle()" %> 

Para un determinado ID- div:

<%= link_to_function "Toggle", "$('#some_div').toggle()" %> 

(notic) e la marca de almohadilla)

periodo Agregado a clase específica div y el hash de Identificación del div específica

+0

Así que eso ni siquiera pasaría al lado del servidor, ¿verdad? –

+0

Sí, JS puro esconder un div es definitivamente el dominio de JS; adelante al servidor para ocultar un div es excesivo. –

+0

Me encanta. Gracias. –

1

Realmente no conozco los rieles, pero ¿puede simplemente generar algo como style = "display: none;" en la etiqueta div?

+0

Tampoco sé los rieles :), pero mi sensación es que no puedo ... . Solo puedo tocar cosas que están dentro de un DIV u otro elemento identificable de la página HTML. –

+0

bummer :(- Supongo que probablemente obtenga jquery de la caja de herramientas en ese momento. – seanb

+0

Nah, tiene prototipo y scriptalicious (sp.) De forma predeterminada, pero incluso con JS simple es fácil. Pero ahora con las respuestas aquí (arriba) Estoy listo para ir. –

3

de emitir una actualización de su controlador RJS:

respond_to do |format| 
    format.html 
    format.js { render(:update) { |page| page.hide('element_id') } } 
end 

Puede buscar el API para otras respuestas RJS.

+0

Impresionante, gran respuesta. Gracias. –

6
render :update do |page| 
    page.hide 'div_id' 
end 

Puede arrojar esto en su responder_bloquear o una plantilla RJS.

Otro consejo útil, utilizando la misma sintaxis:

render :update do |page| 
    page << 'arbitrary javascript code goes here.' 
end 
1
<%= link_to_function "Toggle", visual_effect(:toggle_blind, "some_div") %> 
Cuestiones relacionadas