laravel 如何显示第二个子菜单?

ndh0cuux  于 2023-04-07  发布在  其他
关注(0)|答案(1)|浏览(135)

我想在Laravel中创建一个带有子菜单的菜单。我写了这段代码,但它不显示第二个子菜单。
例如,我想显示Another dropdown的子菜单。但它没有显示。
请看这张图片。i.stack.imgur.com/d8dfk.png

我的Bootstrap版本是5.3

<!DOCTYPE html>
<html dir="rtl" lang="fa">
<head>
  <meta charset="UTF-8">
  <title>Menu</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.rtl.min.css" integrity="sha384-T5m5WERuXcjgzF8DAb7tRkByEZQGcpraRTinjpywg37AO96WoYN9+hrhDVoM6CaT" crossorigin="anonymous">
</head>
<body>
<div class="container">
  <nav class="navbar navbar-expand-lg bg-body-tertiary">
    <div class="container-fluid">
      <a class="navbar-brand" href="#">Site</a>
      <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse">
        <ul class="navbar-nav me-auto mb-2 mb-lg-0">
          <li class="nav-item dropdown">
            <a class="nav-link dropdown-toggle" href="#" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">خدمات</a>
            <ul class="dropdown-menu shadow">
              <li class="dropend">
                <a href="#" class="dropdown-item dropdown-toggle" data-bs-toggle="dropdown">سفارش طراحی سایت</a>
                <ul class="dropdown-menu shadow">
                  <li class="dropend">
                    <a class="dropdown-item dropdown-toggle" data-bs-toggle="dropdown" href="#">سازمانی</a>
                    <ul class="dropdown-menu dropdown-submenu shadow">
                      <li class="nav-item">
                        <a class="nav-link" href="#">اداری</a>
                      </li>
                      <li class="nav-item">
                        <a class="nav-link" href="#">شرکتی</a>
                      </li>
                      <li class="nav-item">
                        <a class="nav-link" href="#">اصناف</a>
                      </li>
                      <li class="nav-item">
                        <a class="nav-link" href="#">بیمه</a>
                      </li>
                    </ul>
                  </li>
                  <li class="dropend">
                    <a class="dropdown-item dropdown-toggle" data-bs-toggle="dropdown" href="#">گردشگری</a>
                    <ul class="dropdown-menu dropdown-submenu shadow">
                      <li class="nav-item">
                        <a class="nav-link" href="#">هتل</a>
                      </li>
                      <li class="nav-item">
                        <a class="nav-link" href="#">رستوران</a>
                      </li>
                      <li class="nav-item">
                        <a class="nav-link" href="#">گردشگری</a>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
              <li class="nav-item">
                <a href="#" class="nav-link">طراحی سایت اختصاصی</a>
              </li>
              <li class="nav-item">
                <a href="#" class="nav-link">سئو</a>
              </li>
              <li class="nav-item">
                <a href="#" class="nav-link">تولیدمحتوا</a>
              </li>
              <li class="nav-item">
                <a href="#" class="nav-link">گرافیک</a>
              </li>
              <li class="nav-item">
                <a href="#" class="nav-link">پیامک</a>
              </li>
              <li class="nav-item">
                <a href="#" class="nav-link">پشتیبانی</a>
              </li>
              <li class="nav-item">
                <a href="#" class="nav-link">گوگل ادورز</a>
              </li>
              <li class="nav-item">
                <a href="#" class="nav-link">اپلیکیشن</a>
              </li>
            </ul>
          </li>
        </ul>
      </div>
    </div>
  </nav>
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
</div>
</body>
</html>

我从这里导入了这个代码https://www.codehim.com/demo/bootstrap-5-mega-menu-responsive-examples/
Category.php

public function children ()
{
    return $this->hasMany(Category::class, 'parent_id', 'id');
}

你能帮助我如何实现它吗?我试过使用几个bootstrap类,甚至硬编码左右浮动。没有帮助。我的代码如下:

jw5wzhpr

jw5wzhpr1#

我觉得问题出在台词上

<a href="{{ $children->path() }}" class="dropdown-item dropdown-toggle" data-bs-toggle="dropdown">{{ $children->title }}</a>

<a class="dropdown-item dropdown-toggle" data-bs-toggle="dropdown" href="{{ $child->path() }}">{{ $child->title }}</a>

href应该是href="#",这样它就不像一个链接,而像一个下拉菜单的按钮。
尝试更改为:

<a href="#" class="dropdown-item dropdown-toggle" data-bs-toggle="dropdown">{{ $children->title }}</a>

<a class="dropdown-item dropdown-toggle" data-bs-toggle="dropdown" href="#">{{ $child->title }}</a>

如果它不起作用,我已经在上面的评论中要求更多的信息。

更新

您需要将data-bs-auto-close="outside"添加到所有dropdown-toggle元素中。
比如说

<a href="#" class="dropdown-item dropdown-toggle" data-bs-toggle="dropdown" data-bs-auto-close="outside">{{ $children->title }}</a>

参见JS-Fiddle

相关问题