我有下拉菜单的数量,在这些特定div下方的onClick
事件被调用,我也设置window.onclick
以收回这些下拉列表(当用户点击其他地方时,它们处于活动状态。
现在,当我点击一个div(有一个dropDown)时,下拉菜单会被激活(菜单被创建)并同时收回(因为window.click
)
菜单正在被创建并同时被销毁!,任何解决方法来执行window.onclick
如果点击的元素没有打开带有下拉列表的div?
愚蠢的问题,来自初学者...... 提前谢谢!!
这是一个示例代码!! .. div上的onclick应该带出菜单 - 而window.onclick应该收回菜单(所有菜单都被展开)
<html>
<style type="text/css">
.bar{
width: 30px;
height: 30px;
background-color: black;
display: none;
}
</style>
<script type="text/javascript" >
function fire(){
document.getElementById("bar").style.display="block";
}
window.onclick=unfire;
function unfire(){
if(document.getElementById("bar").style.display== "block")
document.getElementById("bar").style.display="none";
}
</script>
<input type="button" value="foo" onclick="fire()">
<div id="bar" class="bar"></div>
</html>
编辑:添加了代码示例
答案 0 :(得分:1)
function doSomething() {
if (this.id == "myId") return;
// else do Something
}
答案 1 :(得分:1)
您可以调用e.stopPropagation()
(浏览器)或e.cancelBubble = true
(IE)来阻止事件向上传播。
答案 2 :(得分:0)
您想要在div上触发onmousedown
。