为什么我的微调器没有显示在Turbolinks中?

时间:2014-12-16 22:41:32

标签: javascript ruby-on-rails coffeescript turbolinks

我想创建一个在使用Turbolinks加载页面时显示的微调器。 这是我的Coffeescript:

startSpinner = ->
  console.log "started fetching"
  $('html').append('<div id="spinner" class="whirly"></div>')
stopSpinner = ->
  $('#spinner').remove()
  console.log "stopped fetching"


$(document).on("page:fetch", startSpinner());
$(document).on("page:receive", stopSpinner());

如果我将断点设置为stopSpinner(在删除微调器之前),微调器似乎正确显示,但是它永远不可见。我错过了什么?是page:fetch和page:收到错误的电话?

仅供参考我从http://css-spinners.com/#/spinner/whirly/拿走了微调器。

1 个答案:

答案 0 :(得分:1)

startSpinner()是一个函数调用,而不是函数引用。 jQuery&#39; s on想要一个函数引用作为它的第二个参数,所以你应该说:

$(document).on("page:fetch",   startSpinner)
$(document).on("page:receive", stopSpinner)

将函数绑定到这些事件。你的代码:

$(document).on("page:fetch", startSpinner());
$(document).on("page:receive", stopSpinner());

正在尝试将startSpinnerstopSpinner返回值绑定到这些事件,并且没有任何用处。