javascript - 第二次单击可关闭切换 div

标签 javascript jquery

我使用以下 jQuery 来隐藏和显示内容(切换),作为我网站中的树形导航菜单。我发现这段代码非常有用,因为通过单击,它一次只显示一个 div。

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
function show_region(chosen_region) {
     $('.city_div').each(function(index) {
          if ($(this).attr("id") == chosen_region) {
               $(this).slideDown(200);
          }
          else {
               $(this).slideUp(600);
          }  
     });
}
</script>

<style type="text/css">
   .city_div {display: none;}
</style>


<a href="javascript:show_region('box01');">North</a><br>
<div class="city_div" id="box01">Div #01</div>

<a href="javascript:show_region('box02');">Centre</a><br>
<div class="city_div" id="box02">Div #02</div>

<a href="javascript:show_region('box03');">South</a><br>
<div class="city_div" id="box03">Div #03</div>

问题是我只能通过打开另一个 div 来关闭一个 div。

如何通过第二次点击来关闭 div?

最佳答案

您可以使用slideToggle,从slideDown更改为slideToggle:

function show_region(chosen_region) {
     $('.city_div').each(function(index) {
          if ($(this).attr("id") == chosen_region) {
               $(this).slideToggle(200); // instead of slideDown
          }
          else {
               $(this).slideUp(600);
          }  
     });
}

关于javascript - 第二次单击可关闭切换 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12802330/

相关文章:

javascript - 函数不会生成 IE7 中的选择选项

JavaScript For 循环内的 If 语句

javascript - ES6 react 状态变化不影响渲染内联 if 子句

javascript - 更改 jsf h :selectOneMenu 的下拉箭头

javascript - 不明白这是如何调用 Jquery 中的 fadeIn 方法的

jquery - 当我在 IE6 或 IE7 中使用 jQuery 设置元素的不透明度时,它似乎获取 "overflow: hidden"。为什么?

javascript - Angular 指令被识别为 html 表单元素

Javascript:为什么对象在新的 api 调用时没有得到初始化,而字符串变量却得到了初始化?

javascript - Algolia Javascript addObject 非 HTTPS

Jquery .html() 和 .text() 删除 IE7 和 IE8 中的多余空格