Javascript下拉列表不起作用
Javascript dropdown list not working
我刚开始学习web开发语言,现在我正在尝试使用javascript制作下拉列表(我已经尝试过CSS,但没有成功)
如果你能告诉我我的代码出了什么问题,我会很感激的。
<nav>
<ul class="anchors">
<!-- This is where the dropdown list should appear if you hover your mouse over it -->
<li class="list-comanda">
<a href="javascript:void(0)" onmouseover="dropdown()">Comanda</a>
</li>
<div class="dropdown" id="dropdown" style="display: none;">
<ul class="dropdown-list">
<li class="dropdown-l-magneti"><a href="magneti"> Magneti de frigider personalizati</a></li>
<li class="dropdown-l-hartie"><a href="hartie"> Obiecte facute din hartie</a></li>
</ul>
</div>
<li class="list-contact"><a href="contact">Contacteaza-ma</a></li>
</ul>
</nav>
<script>
function dropdown{
var dropdown = document.getElementById("dropdown");
dropdown.style.display = "inline-block";
}
</script>
如果我的代码杂乱无章,我深表歉意。
您完全可以在css中实现这一点。首先创建菜单标记,确保将下拉列表嵌入到所需的li中,我们将为它们提供一个dropdown
类,以便在默认情况下隐藏它们。
<ul id='menu'>
<li>link 1</li>
<li>link 2</li>
<li>link 3</li>
<li class='dropdown'>link 4
<ul>
<li>sublink</li>
<li>sublink</li>
<li>sublink</li>
</ul>
</li>
</ul>
在我们的标记中,您可以看到我们有一个带有嵌入式下拉列表的子li
,我们在这里使用一个类,因为使用id会使我们无法在同一页面上拥有多个下拉列表(请记住,id应该始终是唯一的,以描述内容的特定部分,而类允许我们重复常见任务)。
然后我们连接我们的css:
#menu {
list-style: none;
}
#menu li {
vertical-align: top;
display: inline-block;
}
#menu .dropdown ul {
background: red;
display: none;
}
#menu .dropdown:hover > ul {
display: block;
}
#menu .dropdown ul li {
display: block;
}
这里需要注意的几点是,在开始时,我们将下拉菜单ul的默认样式设置为display: none
,这将完全隐藏在页面中。我们还在菜单li上使用vertical-align: top
,以确保当下拉菜单显示时,它不会在显示下拉菜单时向下推菜单项(尝试禁用此功能,您就会明白我的意思)。最后,我们使用子选择器工具将hover
事件添加到下拉菜单中。这意味着我们可以将hover
事件绑定到.dropdown
类,并将样式直接应用于其子ul
(即隐藏的元素)。如果我们只是尝试将.dropdown
类设置为display; block
,那么我们不会看到任何更改。
这个例子的jsfiddle可以在这里找到——上面没有漂亮的样式,但我相信你自己也能弄清楚。如果你还有其他问题,请告诉我。
除了这篇文章的答案之外,我想指出的是,使用Twitter的Bootstrap是快速实现风格良好的跨浏览器组件的好方法,上面的链接直接应用于它们的下拉列表。然而,我知道你说过你是网络开发的初学者,我完全理解你想学习如何将这些东西组合在一起;只是不要养成重新发明轮子的习惯,你很快就会知道使用经过战斗测试的代码有时是更好的选择:)
正确声明函数下拉列表:-function dropdown(){//body}
您正在调用dropdown
函数onmouseover
。这个函数在哪里?
更改:
function dropdown{
至:
function dropdown(){
检查此小提琴
我认为我们需要()作为函数
<script>
function dropdown(){
var dropdown = document.getElementById("dropdown");
dropdown.style.display = "inline-block";
}
</script>
这不会更容易吗:
<select>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
<option>Option 4</option>
</select>
- 剑道UI下拉列表在剑道窗口内不起作用
- 单击辐射网格过滤器时不会打开下拉列表
- 显示基于第一个下拉列表的第二个下拉列表不起作用
- 引导程序的下拉列表不起作用
- 选择2 allowClear不使用动态下拉列表
- 下拉列表的onChange()第二次不起作用
- 来自Jquery的“.on”方法在动态生成的下拉列表后不起作用
- 在JavaScript中更改下拉列表索引后,ASP.Net提交按钮单击事件不起作用
- 具体化下拉列表和侧边导航不起作用
- 当我从下拉列表中选择公司名称时,UpdatePanel 自动发布返回=true 并且自动完成文本框不起作用
- 下拉列表删除类不起作用
- 单击两次图标不会关闭下拉列表
- 使用 $('#id').val() 不会返回下拉列表的选定值
- 剑道数据源示意图.数据不能用于下拉列表
- 水豚Poltergeist在点击后不会切换下拉列表
- jQuery -点击链接时不能显示下拉列表
- 使字段不需要基于下拉列表选择MVC 5
- 不能刷新下拉列表在asp mvc 4与选择0.9.12
- 如何使用语言切换器的
- 列表而不是<选择>下拉列表
- 双击事件在IE浏览器中不起作用的选项列表