【问题标题】:Why is my spinner not shown in Turbolinks?为什么我的微调器没有显示在 Turbolinks 中?
【发布时间】:2014-12-16 22:41:32
【问题描述】:

我想创建一个微调器,该微调器在页面加载 Turbolinks 时显示。 这是我的咖啡脚本:

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:receive 错误的调用吗?

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

【问题讨论】:

    标签: javascript ruby-on-rails coffeescript turbolinks


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 这是有道理的。感谢您的通俗解释!它现在运行良好。
    猜你喜欢
    • 2022-11-09
    • 2011-03-29
    • 1970-01-01
    • 2022-08-05
    • 2014-01-02
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多