嗨,我有一个简单的jquery点击监听器,它插入一个签名框,适用于除登录页之外的所有页面。我们正在使用"设计"进行身份验证,我曾尝试将主页重定向到另一条路径,但我猜"设计"的魔力正在阻止这种情况的发生。
根设置为welcome#index
,并且该控制器/功能为空。如果没有登录,主页默认为users/sign_in
,但如果我点击任何其他未被设备"保护"的链接,监听器将在这些页面上工作。
有什么想法吗?
HTML
<div class="dropdown-signin">
<div class="dropdown-signin-carrot">
</div>
<%= form_for(:user, :url => session_path(:user)) do |f| %>
<%= f.text_field :email, autofocus: true, placeholder: "Email" %>
<br>
<%= f.password_field :password, autocomplete: "off", placeholder: "Password"%>
<div class="checkbox">
<%= f.check_box :remember_me %>
<%= f.label :remember_me %>
</div>
<div> <%= f.submit 'Sign in', :class => 'btn btn-lg btn-primary' %></div>
<%= link_to "Forgot your password?", new_password_path(:user) %>
<% end %>
</div>
JS-
var ready;
ready = function() {
$("#login").click(function(){
$(".dropdown-signin").toggleClass("open")
});
};
$(document).ready(ready);
$(document).on('page:load', ready);
好的-问题在于javascript文件:
var ready;
ready = function() {
//some code
$(document).on('page:load', ready);
需要更改为:
var就绪;ready=函数(){
//some code
$(document).on('page:change', ready);
虽然我还不完全清楚,但它看起来像是一个涡轮链接,JS文件没有在根路径的page:load
上加载,但当切换到page:change
时,"页面已更改为新版本(并且在DOMContentLoaded上)",这允许解析javascript文件。