javascript - 为什么悬停时我的下拉菜单不显示?
问题描述
我正在对话框中使用 angularJS 和 google app 脚本创建菜单。
我使用这个示例代码作为参考。
所以不必在这里复制和粘贴我的所有代码基本上就是我想出的:
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
所有显示的内容时,问题就不会来自这里。
起初我虽然这是谷歌应用脚本 HTML 服务的限制,但是当我在JSFiddle上尝试这段代码时,我遇到了同样的问题。
奇怪的是它在示例中有效,并且我尝试尊重相同的元素层次结构。
任何帮助表示赞赏。
解决方案
你悬停在第一个<li>
没有<ul>
孩子的地方。那是在第二个<li>
。我把小时候的下拉菜单放到了 first<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>
推荐阅读
- python - “获取 URL”这个表达实际上是什么意思?
- javascript - Highcharts:当另一个图表上发生点击事件时如何更改或重绘图表?
- javascript - Angular Reactive formArray中的单选按钮-选择数组中的一项
- python-2.7 - 为什么我无法导入pygame?
- ios - 应用构建未出现在 TestFlight 中
- javascript - 在本地,_ 未定义。在我的服务器上,“lodash”未定义
- c# - 如何找到失败事件处理程序的来源
- r - 为什么 dplyr :: filter 不允许我用两个垂直进行过滤?
- google-chrome - 如何使我的桌面应用程序与我的插件交互?
- javascript - AES GCM在nodejs中加密并在浏览器中解密?