Rails 4 ломает Stellar.js после ссылки

Мое приложение rails 4 ломает stellar.js после link_to.

Я знаю, что это связано с турболинками. Я установил jquery.turbolinks, и все мои js-функции из uikit теперь работают. Но stellar.js по-прежнему не...

Это работает, когда я набираю адрес в браузере: 0.0.0.0:3000, но не после нажатия любой ссылки.

Я вызываю stellar.js из своих ресурсов/javascripts/my-js.js следующим образом:

$(function(){
    $.stellar();
});

Я также безуспешно пытался:

function initialize() {
    $.stellar();
}

$(document).ready(initialize);
$(document).on('page:load', initialize);

Спасибо


person Bruno Canongia    schedule 17.11.2014    source источник


Ответы (2)


Ваша проблема, безусловно, связана с Turbolinks. У меня такое ощущение, что когда вы вызываете $.stellar() после запроса Turbolink, вызов не имеет никакого эффекта, поскольку он уже прикреплен к объекту window и не исчезает во время запроса. Попробуйте уничтожить его перед повторной инициализацией в функции initialize.

var initialize = function() {
    $.stellar( 'destroy' );
    $.stellar();
}

$(document).ready( initialize );
$(document).on( 'page:load', initialize );
person Bart Jedrocha    schedule 18.11.2014

Вы также можете привязать метод destroy к событию turbolink перед кэшированием:

$(document).on "turbolinks:before-cache", ->
  $.stellar('destroy')
person Matthieu Foillard    schedule 09.03.2016