在 coffeescript 中声明全局变量

Declare global variable in coffescript

我对嵌套表单使用 Gem Coocon。

如果选中 .checkBoxCurrentJob,我需要隐藏 #end_date_job_portfolio 字段。问题是,如果用户没有单击 添加新的嵌套表单 ,jQuery 将看不到标签,因为 document 中还没有这些标签。

为此我使用 cocoon:after-insert。这是我的脚本:

$(document).ready -> 
  checkbox_date = ""
  end_date = ""
  $('.experiences').on 'cocoon:after-insert', ->
    checkbox_date = $(".checkBoxCurrentJob")
    end_date = $('#end_date_job_portfolio') 
    console.log(checkbox_date)



  #show it when the checkbox is clicked
  сheckbox_date.on 'click', ->
    console.log("la la la")
    if checkbox_date.prop('checked')
      checkbox_date.hide()
    else
      checkbox_date.fadeIn()
    return 

显示ReferenceError: \u0441heckbox_date is not defined错误。如何将 checkbox_dateend_date 值从 cocoon:after-insert 传递到 checkbox_date 的点击事件?

问题是您可能在这一行指的是 \u{441}heckbox_date(不同的标识符)而不是 checkbox_date(正如@muistooshort 所评论的):

  сheckbox_date.on 'click', ->
  ^

这个с应该是ASCII码的。 c\u{63}\u0063)。

此外,根据 ECMAScript 语言(JavaScript`s 所基于的)规范,他们建议将 Unicode Normalized Form C 应用于语言源代码(对于每个实现),我相信可以解决的问题这个问题(虽然我从来不关心也从来没有对此采取任何行动),但无论如何都是可选的。

jquery 支持进出的东西:

$(document).ready ->     
  #show it when the checkbox is clicked
  $(document).on 'click', ".checkBoxCurrentJob", ->
    console.log("la la la")
    checkbox_date = $(this)
    if checkbox_date.prop('checked')
      checkbox_date.hide()
    else
      checkbox_date.fadeIn()
    return