DYZ.Life

【功能】如何在使用Turbolink的时候下达document.ready指令

##问题:
Turbolinks在帮助页面加速(不去重新加载已经加载过的物件)的时候,JS指令“document.ready”不会被引发,所以根据该指令产生的jQuery动作也不会执行。在网站页面不多、物件不复杂的时候,直接干掉Turbolinks是可行的(也是之前写的一篇教学中所推荐的),但当页面越来越多,加载速度越来越慢的时候,使用Turbolinks变得十分重要,所以需要将”document.ready”修改成一个Turbolinks会发出的指令。

##解决方案:


1
2
3
$(document).ready(function()
//YOUR FUNCTION
);

修改为

1
2
3
$(document).on("turbolinks:load", function()
//YOUR FUNCTION
);

记住要加回Turbolinks:

application.js
1
//= require turbolinks

这样页面的指令就会在正常执行了。

参考:http://guides.rubyonrails.org/working_with_javascript_in_rails.html#turbolinks

热评文章