Javascript Rails 5:单击时隐藏导航下拉列表

Javascript Rails 5:单击时隐藏导航下拉列表,javascript,jquery,html,css,ruby-on-rails,Javascript,Jquery,Html,Css,Ruby On Rails,在/views/layouts/_navigation.html.erb中,我有一段代码,单击该代码可填充下拉菜单: <div class="dropdown profile-element"> <span> <img alt="image" class="img-circle" src="<%= image_url 'profile_small.jpg' %>"/> </span> <a data-to

在/views/layouts/_navigation.html.erb中,我有一段代码,单击该代码可填充下拉菜单:

<div class="dropdown profile-element">
  <span>
    <img alt="image" class="img-circle" src="<%= image_url 'profile_small.jpg' %>"/>
  </span>
     <a data-toggle="dropdown" class="dropdown-toggle" href="#">
       <span class="clear">
         <span class="block m-t-xs">
         <strong class="font-bold"><%= current_user.name %></strong><b class="caret"></b>
         </span>
       </span>
     </a>
     <ul class="dropdown-menu animated fadeInRight m-t-xs">
       <li><%= link_to t('.settings'), edit_user_path(current_user), remote: true %></li>
       <li class="divider"></li>
       <li><%= link_to t('.logout'), logout_path %></li>
     </ul>
</div>
当单击
链接到t('.settings')
时,应该关闭下拉菜单,但它不起作用

单击设置时如何关闭下拉列表?谢谢您的帮助。

解决方案更新


如果有人需要,这里是最终的解决方案,这似乎是最简单的在我的情况下。我添加了
$(“#对话框”).trigger('click')
给my
用户/edit.js.erb
,这使得填充modal时背景中的下拉菜单消失。

导航栏的选择器错误。应该是:

$navbar=$('.dropdown.profile元素')


或者换句话说,您忘记了“profile元素”之前的“.”

您对调试做了什么?如果您记录变量,您可以确认它们是否设置为您期望的值,例如,您确定event.target是您期望的值吗?是否将“打开”设置为真实值,clickover有什么类?@margo我现在没有进行任何调试。到目前为止,我试图按照我的情况实施。我想我没有正确理解上面JS代码中的某些内容。我建议您在代码中添加一些日志记录,并在控制台中检查您的变量是否符合您的预期,例如console.log($(event.target)),谢谢,它可以工作。我还找到了另一种方法——我只需添加
$(“#profile_下拉列表”).hide()
到我的
views/users/edit.js.erb
并将
id='profile'下拉列表添加到
\u navigation.html.erb
$(document).click (event) ->
  clickover = $(event.target)
  $navbar = $('.dropdown profile-element')
  _opened = $navbar.hasClass('in')
  if _opened == true and !clickover.hasClass('dropdown-toggle')
    $navbar.collapse 'hide'
  return