咖啡脚本不会在页面更改时触发,但适用于页面加载。

我在我的rails项目中使用coffee脚本,但问题是它只在我加载(刷新)页面而不是页面呈现时才有效,它也应该在页面视图更改时起作用。

这是我正在使用的脚本:

facebook.js.coffee

jQuery -> $('body').prepend('
') $.ajax url: "#{window.location.protocol}//connect.facebook.net/en_US/all.js" dataType: 'script' cache: true window.fbAsyncInit = -> FB.init(appId: env["app_id"], cookie: true) $('#sign_in').click (e) -> e.preventDefault() FB.login (response) -> window.location = '/auth/facebook/callback' if response.authResponse $('#sign_out').click (e) -> FB.getLoginStatus (response) -> FB.logout() if response.authResponse true

你可以尝试"turbolinks:load"

 ready = -> $('body').prepend('
') $.ajax url: "#{window.location.protocol}//connect.facebook.net/en_US/all.js" dataType: 'script' cache: true window.fbAsyncInit = -> FB.init(appId: env["app_id"], cookie: true) $('#sign_in').click (e) -> e.preventDefault() FB.login (response) -> window.location = '/auth/facebook/callback' if response.authResponse $('#sign_out').click (e) -> FB.getLoginStatus (response) -> FB.logout() if response.authResponse true $(document).on('turbolinks:load', ready)

https://github.com/turbolinks/turbolinks#running-javascript-when-a-page-loads

 document.addEventListener("turbolinks:load", function() { // ... })