【发布时间】:2015-02-16 16:09:59
【问题描述】:
您好,我有一个简单的 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);
【问题讨论】:
-
当您点击着陆页上的按钮时,您的控制台会显示什么?
-
它什么也没说。我在那个 Jquery 块中设置了一个断点,但是当您从
users/sign_in中单击时它没有命中它。 -
我很困惑。这里的行为似乎与 Rails 或 Devise 无关。我在这里模拟了一个关于 JSFiddle 的示例:jsfiddle.net/amullins/mLhzmkmb。表单按预期显示和隐藏,控制台指示每个点击事件。
-
好的 - 当页面加载并且用户没有从
users/sign_in登录时,applicaiton.js 文件没有被调用。不知道为什么会这样,但是当我将相同的代码粘贴到控制台时它工作得很好。
标签: javascript jquery ruby-on-rails devise