我想创建一个在使用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/拿走了微调器。
答案 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());
正在尝试将startSpinner
和stopSpinner
返回值绑定到这些事件,并且没有任何用处。