2014-07-14 59 views
0

我正在努力實現與jQuery + Coffeescript功能 - 問題是代碼不顯示任何alert窗口。Rails應用中的Coffeescript(jQuery)不起作用?

這裏的JS功能:

jQuery -> 
    Stripe.setPublishableKey($('meta[name="stripe-key"]').attr('content')) 
    subscription.setupForm() 

subscription = 
    setupForm: -> 
    $('#new_subscription').submit -> 
     $('input[type=submit]').attr('disabled', true) 
     if $('#card_number').length 
     subscription.processCard() 
     false 
     else 
     true 

    processCard: -> 
    card = 
     number: $('#card_number').val() 
     cvc: $('#card_code').val() 
     expMonth: $('#card_month').val() 
     expYear: $('#card_year').val() 
    Stripe.createToken(card, subscription.handleStripeResponse) 

    handleStripeResponse: (status, response) -> 
    if status == 200 
     $('#subscription_stripe_card_token').val(response.id) 
     $('#new_subscription')[0].submit() 
    else 
     $('#stripe_error').text(response.error.message) 
     $('input[type=submit]').attr('disabled', false) 

所有classid屬性被正確配置,但是當我按一下按鈕,沒有alert窗口被調用。

當我把一個alert窗口jQuery ->前行,

alert('asf') 
jQuery -> 
... 

alert window顯示,但是當我做

jQuery -> 
alert('asf') 
... 

則不會顯示。

上面的文件已成功加載。我正在使用jQuery v1.11.1,Rails v4

我在這裏忽略了什麼?

感謝奧尤

+0

是的,我在應用程序中使用了TurboLinks。 – user984621

回答

0

Intendation是coffescript重要

jQuery -> 
    alert('asf') 

會產生

jQuery(function() { 
    return alert('asf'); 
}); 

然而

jQuery -> 
alert('asf') 

會產生

jQuery(function() {}); 
alert('asf'); 

也許搞砸了一些其他intendations。使用Firebug之類的chrome開發工具檢查編譯後的js代碼