【发布时间】:2015-04-02 12:08:59
【问题描述】:
当我单击页面上除菜单内以外的任何位置时,我一直在尝试关闭菜单。
当在菜单中单击链接时,我设法实现了这一点,方法是为其提供与菜单按钮相同的 onclick 功能,但我没有成功单击菜单以关闭它。
http://codepen.io/anon/pen/LEvdmW
JS
function setVisibility(id) {
var targetButton;
switch( id ) {
case "layer":
targetButton = "button";
break;
}
if (document.getElementById(targetButton).value == 'Close') {
document.getElementById(targetButton).innerHTML = 'Open';
document.getElementById(targetButton).value = 'Open';
document.getElementById(id).style.display = 'none';
} else {
document.getElementById(targetButton).innerHTML = 'Close';
document.getElementById(targetButton).value = 'Close';
document.getElementById(id).style.display = 'inline';
}
}
HTML
<button name="type" id="button" onclick="setVisibility('layer')">Open</button>
<div id="layer"><a onclick="setVisibility('layer')"> Hello</div>
CSS
#layer {
position: absolute;
left: 8px;
top: 50px;
background-color: #989898;
width: 280px;
height: 100px;
padding: 10px;
color: black;
display: none;
}
button { border:none; background:#989898; color:#fff; padding:10px; outline:none; cursor:pointer;
}
【问题讨论】:
-
您是否仅限于使用 javascript 解决方案,或者您可以使用 jQuery?
-
jquery 也是,抱歉我忘记添加了。
标签: javascript jquery