Как скрыть и показать div с помощью coffeescript - Rails 3.1 - PullRequest
10 голосов
/ 19 ноября 2011

Я пытаюсь сделать то же поведение, что и ссылка на комментарий к вопросу в переполнении стека. Клик должен скрыть 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 ]

14 голосов
/ 19 ноября 2011

В отличие от Ruby, CoffeeScript не позволяет опускать скобки в вызовах функций / методов, если нет аргументов. Вам необходимо добавить их:

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

Ключевое слово do является еще одним вариантом:

do $('#add_comment_link').hide
do hide_comment_link
5 голосов
/ 19 ноября 2011

Я считаю, что проблема здесь заключается в отсутствии скобок:

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

Редактировать: @ Джереми победил меня в этом

...