3

我在我的应用程序主页上的某些链接上使用了淡入淡出效果。这是由一些 JQuery 完成的:

javascripts/pages.js

$(document).ready(function() {
    $('.home_tile_text').hide().removeClass('text').addClass('text-js');
    $('.home_tile_overlay').hide().removeClass('overlay').addClass('overlay-js');

    $('.home_tile').mouseenter(function(){
        $(this).find('.text-js').finish().hide().fadeIn();
         $(this).find('.overlay-js').finish().hide().fadeIn();
    });
    $('.home_tile').mouseleave(function(){
        $(this).find('.text-js').finish().show().fadeOut();
         $(this).find('.overlay-js').finish().show().fadeOut();
    });
});

当我第一次启动应用程序时,这一切都很好。但是,如果我离开主页,当我返回时,淡出效果将不再起作用,直到我“刷新”页面。有任何想法吗?

4

1 回答 1

5

这可能是因为 Rails 4 的新功能Turbolinks。Turbolinks 通过仅更新页面中发生变化的部分来减少来自客户端的服务器请求。这意味着document.ready(或$(document).ready在 jQuery 中)在加载新页面时不会再次被调用。

一种解决方案是仅删除gem 'turbolinks'gemfile 和require turbolinksapplication.js中require jquery.turbolinks$(document).ready.

有关更多信息,请参阅turbolinks 自述文件中的 jQuery 部分

于 2013-09-01T03:53:13.123 回答