Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 5.2-子菜单don';t保持打开(Turbolink?)_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails 5.2-子菜单don';t保持打开(Turbolink?)

Ruby on rails Rails 5.2-子菜单don';t保持打开(Turbolink?),ruby-on-rails,Ruby On Rails,我有这个侧边栏,打开子菜单有困难 当我点击侧边栏下拉列表时,它会立即打开和关闭。我点击的次数越多,它打开的次数就越少,然后就不再打开了。除非我重新加载 我试图通过在html中添加data turbolinks=“false”来禁用此菜单中的Turbolink。它部分工作,但这意味着其他问题。 边栏下拉列表按预期打开和关闭,由于某些原因,我无法解释在主导航栏中单击一些按钮后,它们变得不可访问,除非我重新加载页面 clcik失败时,url末尾会出现一个#。。像这样:http://localhost:

我有这个侧边栏,打开子菜单有困难

当我点击
侧边栏下拉列表时,它会立即打开和关闭。我点击的次数越多,它打开的次数就越少,然后就不再打开了。除非我重新加载

我试图通过在html中添加
data turbolinks=“false”
来禁用此菜单中的Turbolink。它部分工作,但这意味着其他问题。 边栏下拉列表按预期打开和关闭,由于某些原因,我无法解释在主导航栏中单击一些按钮后,它们变得不可访问,除非我重新加载页面

clcik失败时,url末尾会出现一个
#
。。像这样:
http://localhost:3000//categories/66#
(如果启用或禁用turbolink,则会发生这种情况”

浏览器控制台中完全没有错误

在我的应用程序中,我还使用了
gem'webpacker',“~>3.5.5”

你知道什么地方出了问题吗?怎么解决这个问题

  <div class="page-wrapper chiller-theme toggled"> <!--data-turbolinks="false" is added in the div when turbolink is disabled -->
    <nav id="sidebar" class="sidebar-wrapper">
      <div class="sidebar-content">
        <div class="sidebar-brand">
          <a href="#">Menu pro</a>
          <div id="close-sidebar">
            <i class="fas fa-times"></i>
          </div>
        </div>
        <div class="sidebar-menu">
          <ul>
            <li class="sidebar-dropdown">
              <a href="#">
               <i class="fas fa-cart-arrow-down"></i>
                <span>Orders</span>

              </a>
              <div class="sidebar-submenu">
                <ul>
                  <li>
                    <%= link_to "Orders", orders_path,  class: "list-item" %>
                    <%= link_to "New Orders", incoming_orders_path,  class: "list-item" %>
                  </li>
                </ul>
              </div>
            </li>
            <li>      
            </li>

            <li class="sidebar-dropdown">
              <a href="#">
               <i class="fas fa-truck"></i>
                <span>Market</span>
              </a>
              <div class="sidebar-submenu">
                <ul>
                  <li>
                    <%= link_to "Markets", market_path,  class: "list-item" %>
                  </li>
                </ul>
              </div>
            </li>
            <li>      
            </li>
            <li class="sidebar-dropdown">
              <a href="#" id="suppliers">
                <i class="fas fa-address-book"></i>
                <span>Suppliers</span>
              </a>
              <div class="sidebar-submenu">
                <ul>
                  <li>
                    <%= link_to "New Suppliers", new_supplier_path,  class: "drop-item" %>
                  </li>
                  <li>
                    <%= link_to "Suppliers", suppliers_path,  class: "drop-item" %>
                  </li>
                </ul>
              </div>
            </li>
            <li>
            <li>
               <%= link_to  clients_customization_path, class: "list-item" do %>
               <i class="fa fa-palette"></i> Customisation
               <% end %>
            </li>
          </ul>
        </div>
        <!-- sidebar-menu  -->
      </div>
    </nav>
  </div>
更新>我发现,在turbolink被禁用的情况下,当我在我的展示页面中访问展示页面(任何展示页面使侧边栏失败)后,侧边栏下拉列表变得不可点击。我使用turbolink进行引导转盘


因此,我们的任务是找到如何使turbolink在任何地方都能正常工作的方法,我认为您需要防止切换DrowDown的链接的实际行为

$(".sidebar-dropdown > a").click(function(e) {
  e.preventDefault();
  ....the rest

至少这样可以防止url上的“#”出现。

我认为您需要防止切换DrowDown的链接的实际行为

$(".sidebar-dropdown > a").click(function(e) {
  e.preventDefault();
  ....the rest

至少这会阻止url上的“#”出现。

看起来它终于起作用了。我之前试过这个
e.preventDefault();
但是我想是别的什么东西搞乱了它看起来终于起作用了。我之前试过这个
e.preventDefault();
但是我想是别的什么东西搞乱了