代码之家  ›  专栏  ›  技术社区  ›  JSmith

为什么悬停时我的下拉菜单不显示?

  •  0
  • JSmith  · 技术社区  · 8 年前

    我在用 this example code 作为参考。

    因此,不必复制和粘贴我的所有代码,这里基本上就是我想到的:

    var app = angular.module('myApp', []);
    
    app.controller('mainCtrl', function($scope) {
      $scope.menu = [
        ["first", 
          ["item1", "item 2"]],
        ["second", 
          ["item 1", "item 2"]]
      ];
    });
    li {
      list-style: none;
    }
    
    li ul {
      display: none;
    }
    
    .firstLevel {
      display: inline-block;
    }
    
    li:hover>ul {
      display: block;
      position: absolute;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <div ng-app="myApp" ng-controller="mainCtrl">
      <ul>
        <div ng-repeat="m in menu" class="firstLevel">
          <li>
            <a href="#">{{m[0]}}-</a>
          </li>
          <li>
            <ul>
              <div ng-repeat="msub in m[1]">
                <a>{{msub}}</a>
              </div>
            </ul>
          </li>
        </div>
      </ul>
    </div>

    我想子菜单显示,我怀疑有一个问题,这一块的CSS li:hover > ul .

    array[1] . display: none 一切都显示了所以问题不是从这里来的。

    JSFiddle 我也有同样的问题。

    奇怪的是,它在这个例子中是有效的,我试着尊重相同的元素层次结构。

    感谢您的帮助。

    1 回复  |  直到 8 年前
        1
  •  2
  •   Flink    8 年前

    你正徘徊在第一个 <li> 它没有 <ul> 孩子。那是第二个 < . 我把小时候的下拉列表放到第一个 <li> ,现在可以了。

    var app = angular.module('myApp', []);
    
    app.controller('mainCtrl', function($scope) {
      $scope.menu = [
        ["first", 
          ["item1", "item 2"]],
        ["second", 
          ["item 1", "item 2"]]
      ];
    });
    li {
      list-style: none;
    }
    
    li ul {
      display: none;
    }
    
    .firstLevel {
      display: inline-block;
    }
    
    li:hover>ul {
      display: block;
      position: absolute;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <div ng-app="myApp" ng-controller="mainCtrl">
      <ul>
        <div ng-repeat="m in menu" class="firstLevel">
          <li>
            <a href="#">{{m[0]}}-</a>
             <ul>
              <div ng-repeat="msub in m[1]">
                <a>{{msub}}</a>
              </div>
            </ul>
          </li>
        </div>
      </ul>
    </div>