【问题标题】:Dropdown-menu to close on click outside / hover outside单击外部/悬停在外部时关闭的下拉菜单
【发布时间】:2017-05-25 15:45:24
【问题描述】:

所以我目前正在研究下拉列表菜单,您可能会怀疑......我是个新手。 我希望这样当我打开下拉菜单时,当我悬停或单击它之外时,下拉菜单应该再次隐藏。 怎么可能做到这一点?我在 Stackoverflow 上尝试了一些技巧,但遗憾的是没有一个对我有用。

正如您在下面看到的,它是一个名为(ID)“droppy”的下拉菜单的onclick="toggle_visibility" 它有一个默认的display:none;,所以当我点击<a> 标签时,它会打开“droppy”/下拉式菜单。但是,如果它在悬停在外面或只是在外面点击时再次关闭怎么办。两种解决方案对我来说都可以 =) 如果有人知道,请帮忙。谢谢!

function toggle_visibility(id) {
    var e = document.getElementById(id);
    if(e.style.display == 'block')
        e.style.display = 'none';
    else
         e.style.display = 'block';
    }
#nav #droppy{
	position:relative;
	left:90px;
	top: 17px;
	width: 225px;
	height: 150px;
	display:none;
	font-size: 25px;
	background-color: #304749;
	border-bottom: 1.6px solid black;
}
<div id="nav">
  <div id="fall">
    <a href="#" ="javascript:void(0)" onclick="toggle_visibility('droppy');">Menu</a>
  </div>
  <div id="droppy">
    <a href="airplanes">Våra Flygplan</a>
  </div>
</div>

【问题讨论】:

  • 你的toggle_visibility功能码在哪里?
  • 你好仁 R!对不起,我错过了那个。我现在已将其包含在我上面的问题中。

标签: javascript jquery dropdown


【解决方案1】:

看到这段代码,我用过悬停事件

/*
$( "#menu" ).hover(
  function() {
    $( "#droppy" ).show();
  }, function() {
    $( "#droppy" ).hide();
  }
);
*/
$("#menu").on("click",function(){
  $( "#droppy" ).show();
});

$( "#droppy" ).hover(
  function() {
    
  }, function() {
    $( "#droppy" ).hide();
  }
);
#nav #droppy{
	position:relative;
	left:90px;
	top: 17px;
	width: 225px;
	height: 150px;
	display:none;
	font-size: 25px;
	background-color: #304749;
	border-bottom: 1.6px solid black;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="nav">
  <div id="fall">
    <a href="#" ="javascript:void(0)" id="menu">Menu</a>
  </div>
  <div id="droppy">
    <a href="airplanes">Våra Flygplan</a>
  </div>
</div>

【讨论】:

【解决方案2】:

见下面的代码。添加了单击事件以打开菜单和鼠标退出事件以隐藏。

$('#fall a').mouseout(function() {
  $('#droppy').hide();
}).click(function(){
$('#droppy').show();
});
#nav #droppy{
	position:relative;
	left:90px;
	top: 17px;
	width: 225px;
	height: 150px;
	display:none;
	font-size: 25px;
	background-color: #304749;
	border-bottom: 1.6px solid black;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="nav">
  <div id="fall">
    <a href="#" ="javascript:void(0)">Menu</a>
  </div>
  <div id="droppy">
    <a href="airplanes">Våra Flygplan</a>
  </div>
</div>

【讨论】:

猜你喜欢
  • 2018-04-20
  • 1970-01-01
  • 2017-03-23
  • 2023-02-23
  • 1970-01-01
  • 2021-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多