我使用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
?
答案 0 :(得分:5)
问题在于,您可能会在此行引用\u{441}heckbox_date
(不同的标识符)而不是checkbox_date
(由@muistooshort评论):
сheckbox_date.on 'click', ->
^
此с
应为ASCII码。 c
(\u{63}
或\u0063
)。
此外,从ECMAScript语言(JavaScript所基于的)规范,他们建议将Unicode规范化表格C应用于语言源代码(对于每个实现),我相信解决这个问题(我从不关心)但从来没有对此做过任何事情,但无论如何都是可选的。
答案 1 :(得分:1)
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