javascript – 咖啡脚本不会在页面更改时触发,但适用于页面加载. [Rails 5]

前端之家收集整理的这篇文章主要介绍了javascript – 咖啡脚本不会在页面更改时触发,但适用于页面加载. [Rails 5]前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的rails项目中使用咖啡脚本,但问题是它只在我加载(刷新)页面而不是页面呈现时才有效,它也应该适用于页面视图更改.

这是我正在使用的脚本:

facebook.js.coffee

jQuery ->
  $('body').prepend('<div id="fb-root"></div>')

  $.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('<div id="fb-root"></div>')

  $.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)

猜你在找的JavaScript相关文章