如何在用户点击某个项目后隐藏下拉菜单?

时间:2016-05-11 14:39:52

标签: javascript jquery

我使用bootstrap创建了一个下拉菜单,其中包含以下代码:

<li class="dropdown">
    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Examples    </a><ul class="dropdown-menu" id="examples">
      <li><a href="#" class="example" id="atlas" data-example-name="atlas">Atlas</a> </li>
      <li><a href="#" class="example" id="map" data-example-name="map"> Map</a></li>
    </ul>
  </li>

但是,在用户点击其中一个菜单项后,我无法隐藏下拉菜单。我尝试过使用Jquery,提供以下代码:

$("#atlas").click(function(){
    $("#examples").show();
})  

但它要求我两次点击一个菜单项(第一次执行所需的操作,第二次最后隐藏它)。

4 个答案:

答案 0 :(得分:1)

可以做很多事情来改善这一点,但主要是你需要在单击元素时调用菜单上的hide。 Here is a codepen它的工作原理。

// show/hide the menu when examples is clicked
$(".dropdown-toggle").on("click", function () {
  $(".dropdown-menu").toggle();
});

// hide the menu when an exmple is clicked
$(".example").on("click", function(){
    $(".dropdown-menu").hide(); 
});

答案 1 :(得分:0)

我会说

$('.example').click(function(){ $('#examples').hide(); });

答案 2 :(得分:0)

我想你想要这个代码。

下拉菜单始终显示项目。你点击一个项目,隐藏它。

$('.example').on('click', function (event) {
  event.stopPropagation();
  $(this).hide();
});

这里是fiddle

答案 3 :(得分:-1)

您可以将事件绑定到li本身,并在单击时隐藏它:

$('ul li').click(function() {
  $(this).hide();
});

这是Fiddle Demo

如果您想使用课程,可以这样做:

$('.example').click(function() {
  $(this).hide();
});

以下是使用该课程的Fiddle Demo