2

我多次使用这个脚本来隐藏一些文本:

$(document).ready(function(){
  $("#button_to_click_to_toggle").click(function(){
    $("#hidden_div").slideToggle("medium");
  });
});

我想让它不可能一次切换两个隐藏的 div。

例子:

单击一个按钮 (#button1) = 显示与该按钮关联的隐藏 div (#div1)。

单击另一个按钮 (#button2) = 显示与该按钮关联的 div (#div2),同时 #div1 关闭(滑动关闭)。

单击另一个按钮 (#button3) = 显示与该按钮关联的 div (#div3),同时 #div2 关闭(滑动关闭)。

4

2 回答 2

1

.button为所有按钮和.div所有 div添加一个类。那么这只是一个问题:

$(".button").on('click', function () {
  var id = this.id.replace('button', '');

  //properly toggle visibility of selected div
  if ($("#div" + id).is(":visible")) {
     $("#div" + id).slideUp();
  }
  else {
    $("#div" + id).slideDown();
  }
   //hide all divs except the selected one
   $(".div").not("#div" + id).slideUp();
});

http://jsfiddle.net/6Lhxm/

于 2013-01-10T01:54:57.500 回答
0

也可以在点击时隐藏所有 div,然后只显示相关的一个:

javascript:

$(document).ready(function () {
  $("button").click(function () {
    $("div").hide();
    $(this).next().show();
  });
});

html:

<button type="button">one</button>
<div id="one">one</div>
<button type="button">two</button>
<div id="two">two</div>
<button type="button">three</button>
<div id="three">three</div>

http://jsfiddle.net/x7Ehq/

于 2013-01-10T02:03:12.563 回答