如何使用coffeescript隐藏和显示div - Rails 3.1

时间:2011-11-19 19:03:43

标签: jquery ruby-on-rails ruby-on-rails-3.1 coffeescript

我试图在Stack Overflow中的问题上做出与评论链接类似的行为。 单击应隐藏包含“添加注释”链接的div,并显示另一个包含新注释表单的div。

如何用coffeescript做到这一点?

我正在尝试以下不起作用:

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

查看是:

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

2 个答案:

答案 0 :(得分:14)

与Ruby不同,如果没有参数,CoffeeScript不允许您省略函数/方法调用的括号。你需要添加它们:

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

do关键字是另一种选择:

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

答案 1 :(得分:5)

我认为这里的问题是缺少括号:

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
编辑:@Jeremy打败了我