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

Coffee Script not fire on page change, but works on page load. [Rails 5](咖啡脚本不会在页面更改时触发,但适用于页面加载.[导轨 5])

本文介绍了咖啡脚本不会在页面更改时触发,但适用于页面加载.[导轨 5]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的 rails 项目中使用咖啡脚本,但问题是它仅在我加载(刷新)页面时才有效,而不是在页面呈现时,它也应该适用于页面视图更改.

I am using coffee script in my rails project, but the problem is it works only when i load(refresh) the page instead when the page renders, it should also work on the page view change.

这是我正在使用的脚本:

here is the script i am using:

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)

这篇关于咖啡脚本不会在页面更改时触发,但适用于页面加载.[导轨 5]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:咖啡脚本不会在页面更改时触发,但适用于页面加载.[导轨 5]