开发环境:rails4 我写了一个简单的登陆页面,如下: 我希望每次进入这个页面时,能把焦点聚在 email 输入框里,于是 sessions.js:
$(document).ready(function(){
$("#session_email").focus();
});
application.html.erb:
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= stylesheet_link_tag params[:controller] %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= javascript_include_tag params[:controller] %>
<%= csrf_meta_tags %>
application.js:
//
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
最终生成的登陆页面也包含了 sessions.js
问题是,只有当我在浏览器的 url 里输入 localhost:3000/signin (sessions#new) 时 js 才生效,焦点才会聚焦在 emaill 输入框里,看 log 也会去 started get assets/sessions.js,但如果我通过菜单栏里的链接链过去(<a href="/signin">登陆</a>
),则 js 无效,看 log 里也没有去 get js 文件。为什么呢?