【问题标题】:Declare global variable in coffescript在咖啡脚本中声明全局变量
【发布时间】:2017-04-05 03:14:06
【问题描述】:

我将 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 的点击事件?

【问题讨论】:

  • 仔细阅读错误信息。似乎您输入了\u0441(这是一个“西里尔小写字母es”),您的意思是输入c\u0441 看起来像 c 但它不是。
  • @muistooshort 你是对的,错误的行是-> сheckbox_date.on 'click',,错误的'c'在那里(\u0441

标签: javascript ruby-on-rails coffeescript


【解决方案1】:

问题是您可能在此行指的是\u{441}heckbox_date(不同的标识符)而不是checkbox_date(尽管@muistooshort 评论):

  сheckbox_date.on 'click', ->
  ^

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

此外,根据 ECMAScript 语言(JavaScript 所基于的)规范,他们建议将 Unicode 规范化表单 C 应用于语言源代码(对于每个实现),我认为可以解决这个问题(我从不关心并且从来没有对此采取任何行动),但无论如何都是可选的。

【讨论】:

    【解决方案2】:

    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 
    

    【讨论】:

      猜你喜欢
      • 2012-09-10
      • 2015-09-12
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      相关资源
      最近更新 更多