Javascript 加载微调器并在单击“后退”按钮时显示消息

Javascript 加载微调器并在单击“后退”按钮时显示消息,javascript,jquery,ruby-on-rails,ruby,Javascript,Jquery,Ruby On Rails,Ruby,单击“我的页面”上的链接时,页面上会出现一个微调器和一条消息。它可以工作,当加载新页面时,它们会相应地消失 我用来实现加载微调器 不过我发现了一只虫子。当用户单击浏览器上的“上一步”按钮时,它会返回到上一页,但处于显示微调器和错误消息的状态。当然,我想回到消息隐藏且微调器不显示的状态 据报道,这听起来可能与缓存有关 我使用的是jquery turbolinksgem 下面是我的代码: 发生此问题是因为当您回击时,$(document).ready函数未被调用。您需要更新javascript以适

单击“我的页面”上的链接时,页面上会出现一个微调器和一条消息。它可以工作,当加载新页面时,它们会相应地消失

我用来实现加载微调器

不过我发现了一只虫子。当用户单击浏览器上的“上一步”按钮时,它会返回到上一页,但处于显示微调器和错误消息的状态。当然,我想回到消息隐藏且微调器不显示的状态

据报道,这听起来可能与缓存有关

我使用的是
jquery turbolinks
gem

下面是我的代码:



发生此问题是因为当您回击时,
$(document).ready
函数未被调用。您需要更新javascript以适应TurboLink

不要使用
$(文档)。准备就绪
请尝试使用适当的页面事件,例如
page:load
。中列出了可用的选项


您的最终javascript将具有类似于
$(文档)的内容。在(“page:fetch”,默认的\u hide\u waiting\u message)
上,发生问题的原因是
$(文档)。回击时未调用ready
函数。您需要更新javascript以适应TurboLink

不要使用
$(文档)。准备就绪
请尝试使用适当的页面事件,例如
page:load
。中列出了可用的选项


您的最终javascript将具有类似于
$(文档)的内容。在(“page:fetch”,默认的\u hide\u waiting\u message)
上,发生问题的原因是
$(文档)。回击时未调用ready
函数。您需要更新javascript以适应TurboLink

不要使用
$(文档)。准备就绪
请尝试使用适当的页面事件,例如
page:load
。中列出了可用的选项


您的最终javascript将具有类似于
$(文档)的内容。在(“page:fetch”,默认的\u hide\u waiting\u message)
上,发生问题的原因是
$(文档)。回击时未调用ready
函数。您需要更新javascript以适应TurboLink

不要使用
$(文档)。准备就绪
请尝试使用适当的页面事件,例如
page:load
。中列出了可用的选项



您的最终javascript将具有类似于
$(文档)的内容。在(“page:fetch”,default\u hide\u waiting\u message)

上,我认为既然我已经包含了
jquery turbolinks
gem,那么
$(文档)。ready
将适合我。我尝试用
$(文档)替换它
正如您所建议的,但不幸的是,它对我仍然不起作用。您可以尝试将调试消息记录到控制台,以便将turbo links设置中的某些内容与自定义代码隔离开来吗?在我再次尝试之前,我认为我的答案很好。我会继续努力。不过,我认为您是对的:这是turbo links的问题。我认为不是因为我已经包含了
jquery turbolinks
gem,所以
$(文档)。ready
对我来说很有用。我尝试用
$(文档)替换它。on(“page:fetch”
正如您所建议的,但不幸的是,它对我仍然不起作用。您可以尝试将调试消息记录到控制台,以便将turbo links设置中的某些内容与自定义代码隔离开来吗?在我再次尝试之前,我认为我的答案很好。我会继续努力。不过,我认为您是对的:这是turbo links的问题。我认为不是因为我已经包含了
jquery turbolinks
gem,所以
$(文档)。ready
对我来说很有用。我尝试用
$(文档)替换它。on(“page:fetch”
正如您所建议的,但不幸的是,它对我仍然不起作用。您可以尝试将调试消息记录到控制台,以便将turbo links设置中的某些内容与自定义代码隔离开来吗?在我再次尝试之前,我认为我的答案很好。我会继续努力。不过,我认为您是对的:这是turbo links的问题。我认为不是因为我已经包含了
jquery turbolinks
gem,所以
$(文档)。ready
对我来说很有用。我尝试用
$(文档)替换它。on(“page:fetch”
正如您所建议的,但不幸的是,它对我仍然不起作用。您可以尝试将调试消息记录到控制台,以便将turbo links设置中的某些内容与自定义代码隔离开来吗?在我再次尝试之前,我认为我的答案是好的。我会继续努力。不过,我认为您是对的:这是turbo links的问题。几行我同意没有解释,但这对我来说很好-谢谢!几行解释如何回答提问是一件好事。虽然我同意没有解释,但这对我来说很好-谢谢!几行解释如何回答提问是一件好事。虽然我同意没有解释,但这对我来说很好-谢谢!几行解释关于这如何回答问题,补充一点是好的。虽然我同意没有解释,但这对我来说很好-谢谢!关于这如何回答问题,补充几行解释是好的。虽然我同意没有解释,但这对我来说很好-谢谢!
#app/assets/javascripts/foo.js
$(document).ready(function(){  #for turbolinks compatability
    (function default_hide_waiting_message(){
        $("#waiting_message").hide();
    }());
    (function display_loading_spinner_and_message(){
        $(".show_loading_spinner_on_click").on('click', function(){
                var opts = {
                  lines: 12             // The number of lines to draw
                , length: 7             // The length of each line
                , width: 5              // The line thickness
                , radius: 10            // The radius of the inner circle
                , scale: 1.0            // Scales overall size of the spinner
                , corners: 1            // Roundness (0..1)
                , color: '#000'         // #rgb or #rrggbb
                , opacity: 1/4          // Opacity of the lines
                , rotate: 0             // Rotation offset
                , direction: 1          // 1: clockwise, -1: counterclockwise
                , speed: 1              // Rounds per second
                , trail: 100            // Afterglow percentage
                , fps: 20               // Frames per second when using setTimeout()
                , zIndex: 2e9           // Use a high z-index by default
                , className: 'spinner'  // CSS class to assign to the element
                , top: '50%'            // center vertically
                , left: '50%'           // center horizontally
                , shadow: false         // Whether to render a shadow
                , hwaccel: false        // Whether to use hardware acceleration (might be buggy)
                , position: 'absolute'  // Element positioning
                }
                var target = document.getElementById('spinner')
                var spinner = new Spinner(opts).spin(target)
            $("#waiting_message").fadeIn('slow');
        });
    }());
});
$(window).bind("pageshow", function(event) {
$("#waiting_message").hide();});