2011-11-19 10 views
9

Yığın Taşması'nda bir sorudaki yorum bağlantısıyla benzer bir davranış yapmaya çalışıyorum. A tıkla, "Yorum ekle" bağlantısını içeren div'u gizlemeli ve yeni bir yorum için formu içeren başka bir div göstermelidir.Coffeescript ile bir div nasıl gizlenir ve gösterilir - Raylar 3.1

Bunu coffeescript ile yapmak nasıl mümkündür?

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 

Görünüm ise:

Ben çalışmıyor aşağıdaki çalışıyorum

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

cevap

13

, CoffeeScript sen işlevinden parantez atlamak için izin vermez/yöntem çağırırsa orada argümanlar yoktur. Onları eklemeniz gerekir:

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

Çok teşekkürler! Bu kadar aptalca bir soru hissediyorum. Umarım, bu diğer geliştiriciler için yararlı olacaktır ... – obo

5

Burada sorun parantez eksikliği olduğuna inanıyoruz:

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

do anahtar kelime başka bir seçenektir

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 

Düzenleme: @Jeremy bana bunu dövdü

+0

Evet öyle. Teşekkür ederim. – obo