2014-12-16 3 views
1

Я думал о создании счетчика, который отображается, пока страница загружается с Turbolinks. Вот мой CoffeeScript:Почему мой счетчик не показан в 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 (прежде чем она удаляет блесну), но он никогда не виден иначе. Что мне не хватает? Есть ли страница: выборка и страница: получение неправильных вызовов?

FYI Я взял счетчик от http://css-spinners.com/#/spinner/whirly/.

ответ

1

startSpinner() является функцией вызова, а не функция ссылка. JQuery-х on хочет ссылку на функцию в качестве второго аргумента, так что вы должны сказать:

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

связать функции этих событий. Код:

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

пытается связать возвращаемые значения startSpinner и stopSpinner к тем событиям, и что не делает ничего полезного.

+0

Это имеет смысл. Спасибо за понятное объяснение! Теперь он отлично работает. – Johannes

Смежные вопросы