2011-11-19 33 views
9

Estoy tratando de hacer un comportamiento similar al del comentario sobre una pregunta en Stack Overflow. Un clic debe ocultar el div que contiene el enlace "Agregar comentario" y mostrar otro div que contiene el formulario para un nuevo comentario.Cómo ocultar y mostrar un div con coffeescript - Rails 3.1

¿Cómo es posible hacer esto con coffeescript?

Estoy tratando los siguientes que no funciona:

jQuery -> 

    hide_comment_link =() -> 
    $('#add_comment_link').hide 
    hide_comment =() -> 
    $('#add_comment').hide 
    show_comment =() -> 
    $('#add_comment').show 

    $('#add_comment_link').click -> 
    hide_comment_link 
    show_comment 
    false 

View es:

#add_comment_link 
    #{link_to "Add a comment"} 
#add_comment 
    Add a comment in this div. 

Respuesta

13

A diferencia de Ruby, CoffeeScript no permite omitir el paréntesis de la función/método llama si hay no hay argumentos Es necesario añadir que:

$('#add_comment_link').hide() 
hide_comment_link() 

El do palabra clave es otra opción:

do $('#add_comment_link').hide 
do hide_comment_link 
+1

¡Muchas gracias! Me siento tan incómodo por esa pregunta tonta. Bueno, espero que esto sea útil para otros desarrolladores ... – obo

5

Creo que el problema aquí es la falta de paréntesis:

hide_comment_link =() -> 
    $('#add_comment_link').hide() 
hide_comment =() -> 
    $('#add_comment').hide() 
show_comment =() -> 
    $('#add_comment').show() 

$('#add_comment_link').click -> 
    hide_comment_link() 
    show_comment() 
    false 

Edit: @Jeremy me ganó al

+0

Sí lo es. Gracias. – obo

Cuestiones relacionadas