Объявите глобальную переменную в coffescript

Я использую Gem Coocon для вложенных форм.

Мне нужно скрыть поле #end_date_job_portfolio, если .checkBoxCurrentJob проверено. Проблема в том, что 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_date и end_date от cocoon:after-insert до события щелчка checkbox_date

7 голосов | спросил Stefan Hansch 21 12016vEurope/Moscow11bEurope/MoscowMon, 21 Nov 2016 19:36:01 +0300 2016, 19:36:01

2 ответа


0

Проблема в том, что вы, вероятно, ссылаетесь на \u{441}heckbox_date (другой идентификатор) вместо checkbox_date (как прокомментировал @muistooshort) в этой строке:

  сheckbox_date.on 'click', ->
  ^

Этот с должен быть ASCII. c (\u{63} или \u0063)

Кроме того, исходя из спецификаций языка ECMAScript (на основе которых основан JavaScript), они рекомендуют применять нормализованную форму C Unicode в исходных кодах языка (для каждой реализации), что, по моему мнению, решает эту проблему (меня это никогда не волновало) и никогда ничего не делал с этим, хотя), но в любом случае необязательно.

ответил hydroper 21 12016vEurope/Moscow11bEurope/MoscowMon, 21 Nov 2016 20:35:12 +0300 2016, 20:35:12
0

В 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 
ответил Blair Anderson 27 Jpm1000000pmFri, 27 Jan 2017 23:40:27 +030017 2017, 23:40:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132