【发布时间】:2016-11-16 05:43:47
【问题描述】:
我的菜单中有一个投资组合项目,然后它变成一个下拉菜单,悬停在桌面上并点击移动。移动设备的问题是第一次点击显示菜单,这一切都很好,但接下来的点击并没有改变任何东西。
我试过.toggle()、.toggleClass(),这两种方法似乎都不起作用。我目前正在测试 if/else 语句,如下面的 JavaScript 所示。 “如果窗口宽度小于 940 像素”......然后“如果当前 visibility 是 hidden,则在单击父级时将其更改为 visibility: visible”,反之亦然。
编辑:
我只在小于 940 像素的浏览器窗口中进行测试,以模拟“移动”体验。
编辑#2:
为了这个问题,我删除了if window width < 940px,因为这样回答可能更容易?
$(function() {
if ($('.nav__portfolio ul').css('visibility', 'hidden') == true) {
$('.nav__portfolio').on('click', function() {
$('.nav__portfolio ul').css('visibility', 'visible');
});
} else {
$('.nav__portfolio').on('click', function() {
$('.nav__portfolio ul').css('visibility', 'hidden');
});
}
};
.nav__portfolio ul {
visibility: hidden;
<li class="nav__portfolio"><p>PORTFOLIO</p>
<ul>
<li>Dropdown Item</li>
<li>Dropdown Item</li>
<li>Dropdown Item</li>
</ul>
</li>
【问题讨论】:
-
你的 html 标记是什么样子的?
-
你真的应该在一个
click事件处理程序中执行此操作 -
对不起,我应该补充一下。新手,我现在要编辑问题。
-
第一次检查窗口宽度时没有 else 选项,因此您的代码(如果有效)仅在窗口宽度
-
我目前仅在小于 940 像素的浏览器窗口中测试此代码。我正在使用模拟移动体验的 Chrome 开发工具功能,我相信设备工具栏?抱歉应该说清楚。
标签: javascript jquery css drop-down-menu click