2017-02-16 12 views
1

Я использую общие кнопки (плагины javascript). Когда я открываю страницу, она показывает, что кнопки, но когда я открываю другую страницу, она исчезает. Он появляется снова, когда я обновляю сайт. Он работает правильно с jquery.turbolinks и без камкорда turbolinks, но без него сайт работает очень медленно. Как сделать сайт быстрее? My website, теперь плагины работают, потому что я удалил турбовинты.Плагины Javascript не работают должным образом с turbolinks

application.js

//= require jquery 
//= require jquery.turbolinks 
//= require jquery_ujs 
//= require lightbox 
//= require_tree . 
//= require turbolinks 

application.html.erb JavaScript плагинов

<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-588e44a9401a6d9f"></script> 
<script type="text/javascript" id="st_insights_js" src="http://w.sharethis.com/button/buttons.js?publisher=630cdfb3-b6c5-4da7-a389-1c7d5340827d"></script> 
<script type="text/javascript">stLight.options({publisher: "630cdfb3-b6c5-4da7-a389-1c7d5340827d", doNotHash: false, doNotCopy: false, hashAddressBar: false});</script> 

Gemfile

gem 'jquery-turbolinks' 
gem 'turbolinks', '~> 5.0.1' 

Я пытался добавить один плагин в JavaScript файле, но результат такой же

$(document).on('turbolinks:load', function(){ 
    stLight.options({publisher: "630cdfb3-b6c5-4da7-a389-1c7d5340827d",  doNotHash: false, doNotCopy: false, hashAddressBar: false}); 
}); 

ответ

0

Я думаю, вам нужно повторно инициализировать кнопки, так как скрипт buttons.js повторно не вводится через turbolinks ... Я d попробуйте что-то вроде этого:

$(document).on('turbolinks:load', function(){ 
    stLight.readyRun = false; 
    stLight.onReady(); // re-initialization 
}); 

Надеюсь, это поможет!

+0

Спасибо, но нет, не сработало. – Kristis

0

Вы пытались добавить что-то подобное?

// turbolinks addthis 
var initAdthis; 

initAdthis = function(){ 
    // Remove all global properties set by addthis, otherwise it won't reinitialize 
    for (var i in window) { 
     if (/^addthis/.test(i) || /^_at/.test(i)) { 
      delete window[i]; 
     } 
    } 
    window.addthis_share = null; 

    // Finally, load addthis 
    $.getScript("http://s7.addthis.com/js/300/addthis_widget.js#pubid=YOUR-PUBLISHER-ID"); 
} 

// Trigger the function on both jquery's ready event and turbolinks page:change event 
$(document).on('ready page:change', function() { 
    initAdthis(); 
}); 
+0

Не работает. – Kristis