javascript - 将 CSS Hover 转换为 JS onClick 以获得下拉菜单?

标签 javascript jquery html css

我想在用户点击图片时创建一个简单的下拉菜单。目前我正在使用 CSS 悬停但它不会停留所以我想将它转换为 JS onClick 函数。

<html>
<head>
<style>
ul {
text-align: left;
display: inline;
margin: 0;
list-style: none;
}
ul li {
display: inline-block;
position: relative;
}
ul li ul {
padding: 0;
position: absolute;
display: none;
opacity: 0;
visibility: hidden;
}
ul li ul li { 
display: block;  
}
ul li:hover ul {
display: block;
opacity: 1;
visibility: visible;
}
</style></head><body>
<ul>
<li>
<img src="https://cdn1.iconfinder.com/data/icons/thincons/100/menu-128.png" width="20px;" height="18px;"/>
<ul class="lang">
<li>Web Design</li>
<li>Web Development</li>
<li>Illustrations</li>
</ul>
</li>
</ul>

</body>  
</html>

最佳答案

使用一点 jQuery,我们可以轻松地切换打开或关闭一个类来表示“显示”菜单:

$("#menu").click(function(){
    $(this).toggleClass("activated");
});

并将 CSS(而不是 :hover)更改为:

ul li.activated ul {
    display: block;
    opacity: 1;
   visibility: visible;
}

HTML 只需要第一个 li 元素有一个 id,这让我们可以使用 jQuery 将点击事件绑定(bind)到它。

<ul>
<li id="menu">

您可以在这个 fiddle 上看到所有的操作.

编辑:对于非 jQuery 解决方案,您可以使用以下 Javascript 代码:

var myEl = document.getElementById('menu');
myEl.addEventListener('click', function() {
    this.classList.toggle('activated');
}, false);

关于javascript - 将 CSS Hover 转换为 JS onClick 以获得下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33861664/

相关文章:

html - 请帮助新手解决 IE7 布局 float 问题

javascript - Json错误: Cannot read property 'xxx' of undefined

jquery - html5音频播放多次

JQuery 不会在第一次单击时触发,但在第二次单击时触发

javascript - jQuery 选择器 "memory"

javascript - 如何在页面底部显示弹出模式?

未应用 JQuery 样式

javascript - Jquery Knockout - 在数据绑定(bind)属性中获取元素实例

javascript - 通过 anchor 链接实现跳转到主要内容技术时更新键盘焦点

javascript - 如何根据值更改div的颜色