首页 > 解决方案 > `$(window).on('load', function() {...}` 不适用于链接跟随或后退点击

问题描述


function preloader() {
    console.log('here')
    if ($('#preloader').length) {
        setTimeout(function() {
            $('#preloader').fadeOut('slow', function() {
                $('body').removeClass('overflow-hidden').css('padding', '');
            });
        }, 100);
    }

}

$(window).on('load', preloader);

当在浏览器中的新选项卡上打开页面或在页面刷新后打开页面时,此功能有效,但是,在按照常规链接或点击返回按钮后加载页面时,此功能无效。

here刷新后才显示在控制台中

标签: javascriptjquery

解决方案


好的,事实证明这是特定于 Ruby on Rails gemturbolink的,它可以在不重新加载页面的情况下更改正文内容。

它会发出特殊事件,您可以在该事件上跟踪它重新加载的页面:

document.addEventListener("turbolinks:load", function() {
...
})


推荐阅读