2011-11-19 13 views
9

Sto provando a fare un comportamento simile al link del commento su una domanda in Stack Overflow. Un clic dovrebbe nascondere il div contenente il collegamento "Aggiungi commento" e mostrare un altro div contenente il modulo per un nuovo commento.Come nascondere e mostrare un div con coffeescript - Rails 3.1

Come è possibile farlo con il coffeescript?

sto cercando la seguente che non funziona:

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 è:

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

risposta

13

A differenza di Ruby, CoffeeScript non consente di omettere parentesi da funzione/metodo chiama se ci non ci sono argomenti. È necessario aggiungere loro:

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

Il do parola chiave è un'altra opzione:

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

Mille grazie! Mi sento così scomodo per quella stupida domanda. Bene, spero che questo sia utile per altri sviluppatori ... – obo

5

Credo che il problema qui è la mancanza di parentesi:

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 

Modifica: @Jeremy mi ha battuto su di esso

+0

Sì, lo è. Grazie. – obo

Problemi correlati