为带有下拉菜单的按钮创建onclick事件
Creating an onclick event for a button with a dropdown menu
我已经学习HTML和CSS几个星期了,现在我开始对这些感觉很舒服。然而,我也在努力学习JavaScript。
我一直在用HTML和CSS制作一个按钮,你可以在这里查看按钮的演示。
我想使下拉菜单可见,当你点击按钮,如果你再次点击按钮,下拉菜单消失。
是否有任何简单或可理解的方法来创建一个函数,在JavaScript中做到这一点?
下面是我的代码:
HTML: <div id="language-wrapper">
<a class="language-icon fr" href="#" alt="choose-your-language">Language</a>
<div id="language-dropdown">
<h3>Choose your language</h3>
<a class="language-links" href="#">Chinese</a>
<a class="language-links" href="#">Danish</a>
<a class="language-links" href="#">Deutsch</a>
<a class="language-links" href="#">English</a>
<a class="language-links" href="#">Espanol</a>
<a class="language-links" href="#">Filipino</a>
<a class="language-links" href="#">Hindu</a>
<a class="language-links" href="#">Italiano</a>
<a class="language-links" href="#">Norsk</a>
<a class="language-links" href="#">Nederlands</a>
<a class="language-links" href="#">Polski</a>
<a class="language-links" href="#">Portugues</a>
<a class="language-links" href="#">Svenska</a>
<a class="language-links" href="#">Suomi</a>
<a class="language-links" href="#">Turkce</a>
<a class="language-links" href="#">Urdu</a>
<p>Do you speak multiple languages or can't find your language? <font color="#d13030">Help us translate!</font><p>
</div> <!-- end of language-dropdown class -->
</div> <!-- end of language-wrapper -->
CSS: #language-wrapper { display: inline-block; }
#language-wrapper:hover #language-dropdown { opacity: 1; display: block; }
.language-icon {
color: #fff;
font-weight:700;
padding-right:20px;
padding-left:30px;
display:inline-block;
font-size:11px;
text-align:right;
text-decoration:none;
position:relative;
left: 0; top: 0;
}
.fr { background: url("images/language-sprite.png") no-repeat 0 0; }
.fr:hover { background: url("images/language-sprite.png") no-repeat 0 -20px; color: #d13030; }
.language-icon:before {
content:''25BE';
width:0px;
height:0;
position:absolute;
right:16px;
top: 0;
}
.language-icon:hover:before {
color: #d13030;
content: ''25B4';
top: -1px;
}
/* ------------------ LANGUAGE DROPDOWN ------------------ */
#language-dropdown {
opacity: 0;
width: 1023px;
display: none;
margin-top: 3px;
left: 0;
position: absolute;
border: 1px solid #ddd;
background: #fff;
box-shadow: 0px 3px 3px #b3b3b3;
}
#language-dropdown h3 {
color: #d13030;
font-size: 14px;
font-weight: normal;
padding: 5px 15px 0px 15px;
}
#language-dropdown p {
font-size: 12px;
padding: 0px 0px 10px 15px;
}
#language-dropdown a {
padding: 0px 0px 0px 15px;
}
.language-links {
font-size: 12px;
text-decoration: none;
color: #2793e6;
}
.language-links:hover {
text-decoration: underline;
}
它可以作为onclick事件的基本切换显示函数:
function toggle(el) {
var tag=document.getElementById(el);
tag.style.display = tag.style.display === 'block' ? 'none' : 'block';
// set as defaut oposite defaut active value in document
// here defaut is set to block cause it is none in CSS
}
<a class="language-icon fr" href="#" alt="choose-your-language" onclick="toggle('language-dropdown');">Language</a>
test here: http://codepen.io/anon/pen/cHIrd/
注意:
opacity:0;
从初始CSS中移除
更好的做法是切换类而不是样式值:)
或者通过javScript设置onclick事件。
可以添加返回false以避免链接到href。
<a class="language-icon fr" href="#" alt="choose-your-language" onclick="toggle('language-dropdown');return false;">Language</a>
Html
<button id="clickme">Clickme</button>
<h1 id="Another">Menu</h1>
JavaScript: document.getElementById("clickme").onclick=function(){
var el = document.getElementById('Another');
if (el.style.display == '') {
el.style.display = 'none';
alert("hide");
}else{
el.style.display = '';
alert("show");
}
};
示例
相关文章:
- 动态创建OnClick事件Javascript
- 在onclick上动态创建新页面
- 如何在动态创建元素的内联onclick事件中传递对象
- Javascript onclick需要点击两次,然后会创建越来越多的服务器请求
- 防止动态创建的onclick事件过早触发
- 使用 JQuery 将 onclick 事件添加到动态创建的定位点
- 如何在 JavaScript 中对以 # 开头的 ID 创建 OnClick 事件
- 为动态表行创建onclick事件的Javascript
- 动态创建OnClick处理程序Jquery
- 如何在javascript中获得所有超链接url和创建onclick
- 创建onClick函数以显示数组中的第一个图像
- 在asp.net .cs中创建onclick函数的c#代码
- 使用变量&循环创建"onclick"功能
- 在html中单击后创建onClick内容
- 对动态创建的元素动态创建onclick事件
- 如何为链接创建onclick
- 在其in dom之前创建onClick事件
- 使用 jQuery 动态创建 onClick 事件处理程序
- 为带有下拉菜单的按钮创建onclick事件
- 动态行创建onclick函数