【发布时间】:2013-05-21 04:36:06
【问题描述】:
我正在使用 Rails 4 并希望使用内置的 Turbolink gem。我对它所做的一切都很满意,只是我希望它在每个页面请求时重新加载其中一个 js 文件。
换句话说,我想要一个特定的 js 文件来忽略 turbolinks,我该怎么做?
【问题讨论】:
标签: javascript ruby-on-rails gem ruby-on-rails-4 turbolinks
我正在使用 Rails 4 并希望使用内置的 Turbolink gem。我对它所做的一切都很满意,只是我希望它在每个页面请求时重新加载其中一个 js 文件。
换句话说,我想要一个特定的 js 文件来忽略 turbolinks,我该怎么做?
【问题讨论】:
标签: javascript ruby-on-rails gem ruby-on-rails-4 turbolinks
您可以使用 turbolinks 中的 'page:load' 事件将初始化函数连接到它。当 turbolinks 完全重新加载您的新页面时,它将始终被调用。
function initialize() {
//js code what you want run always
}
$(document).ready(initialize);
$(document).on('page:load', initialize);
如果你经常使用 jQuery,安装在你的 Gemfile 中会很有用
gem 'jquery-turbolinks'
还有你的 application.js
//= require jquery
//= require jquery.turbolinks
Turbolinks 还有两个有用的事件:
page:fetch //when new page begin to download
page:change //when the page has changed over
【讨论】:
$(#yourselector:not(.bounded)).addClass('bounded').on('an event', do_this);