gpt4 book ai didi

javascript - jQuery 下拉菜单不会在页面重新加载时切换

转载 作者:太空宇宙 更新时间:2023-11-04 09:54:05 25 4
gpt4 key购买 nike

我的 Rails 应用程序中有一个通过 jQuery 动画的响应式下拉菜单,但是当我点击其中一个菜单链接时,它卡在了打开位置。我可以继续关注链接,但菜单仍然打开。

在我的 application.html.erb 中:

 <header>
<button class="hamburger">&#9776;</button>
</header>

<div class="menu">
<ul>
<% if current_user %>
<li><%= image_tag @user.profile_picture.thumb.url, class: 'profile_thumb' %> <span><%= current_user.email %></span></li>
<% end %>
<li><%= link_to "Home", root_path %></li>
<li><%= link_to "Pledges", pledges_path %></li>
<% if current_user %>
<li><%= link_to "Edit Profile", edit_user_registration_path %></li>
<li><%= link_to "Log out", destroy_user_session_path, method: :delete %></li>
<% else %>
<li><%= link_to "Sign In", new_user_session_path %></li>
<li><%= link_to "Register", new_user_registration_path %></li>
<% end %>
</ul>
</div>

我在 application.js 中的 jQuery:

$(document).ready(function() {

$('.menu').hide();

$('.hamburger').on('click', function() {
$('.menu').slideToggle('slow');
});

});

它位于 app/assets/javascripts 中,链接在 application.html.erb 的头部:

<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>

感谢您的宝贵时间。

最佳答案

听上去,这是一个 turbolinks 问题。根据您的 rails 版本,将其包装在以下内容中。

var ready = function() {

$('.menu').hide();

$('.hamburger').on('click', function() {
$('.menu').slideToggle('slow');
});

};

$(document).on('ready', ready);
// Rails 5 || Turbolinks 5
$(document).on('turbolinks:load', ready);
// Rails 4 || Turbolinks < 5
$(document).on('page:load', ready);

关于javascript - jQuery 下拉菜单不会在页面重新加载时切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38872250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com