Jquery点击监听器没有在根路径Rails/Devise上启动

Jquery click listener not firing on root path Rails/Devise

本文关键字:Rails 路径 Devise 启动 监听器 Jquery      更新时间:2023-12-07

嗨,我有一个简单的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文件。