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

obo*_*obo 10 jquery ruby-on-rails coffeescript ruby-on-rails-3.1

我试图在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
Run Code Online (Sandbox Code Playgroud)

查看是:

#add_comment_link
  #{link_to "Add a comment"}
#add_comment
  Add a comment in this div.
Run Code Online (Sandbox Code Playgroud)

小智 14

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

$('#add_comment_link').hide()
Run Code Online (Sandbox Code Playgroud)
hide_comment_link()
Run Code Online (Sandbox Code Playgroud)

do关键字是另一种选择:

do $('#add_comment_link').hide
Run Code Online (Sandbox Code Playgroud)
do hide_comment_link
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢!对于这个愚蠢的问题,我感到非常困惑。好吧,我希望这对其他开发人员有帮助... (2认同)

Ale*_*tie 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
Run Code Online (Sandbox Code Playgroud)

编辑:@Jeremy打败了我