2016-11-21 201 views
7

我使用Gem Coocon作爲嵌套窗體。在coffescript中聲明全局變量

如果選中.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

+1

更加仔細閱讀錯誤消息。看起來你已經輸入了'\ u0441'(這是一個「西裏爾字母小寫字母」),你的意思是鍵入'c'。 '\ u0441'看起來像一個'c',但它不是一個。 –

+2

@ muistooshort你是對的,錯誤的是 - >'сheckbox_date.on'點擊',',錯誤的'c'在那裏('\ u0441') – Hydro

回答

5

的問題是,你可能指的是\u{441}heckbox_date(不同的標識符),而不是checkbox_date(由@muistooshort評論雖然)這行:

сheckbox_date.on 'click', -> 
^

с應該是ASCII之一。 (c\u0063)。

此外,從ECMAScript語言(基於JavaScript的)規範中,他們推薦在語言源代碼中應用Unicode規範化表單C(對於每個實現),我相信解決此問題的方法但是從來沒有做過任何事情),但是可以選擇。

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