在JQuery中反转.toggle()

时间:2016-02-20 17:22:25

标签: javascript jquery html

我想在按下按钮时切换div。 目前我有这个:

$("#reportOptions").toggle("fast");

但是当我第一次点击按钮时,它会将div设置为:

display: none;

当我再次点击时:

display: block;

哪个好,但我希望第一次点击是样式块,所以反转切换。
我怎样才能做到这一点? Jquery.com没有解释这一点,关于SO的每篇文章都是关于反转动画而不是关于布尔值。

我已经尝试将初始HTML设置为display: none;,但如果我这样做,动画会以奇怪的方式取消(仅限第一次点击)。

3 个答案:

答案 0 :(得分:1)

所有toggle()都会在display: nonedisplay: block之间切换。如果您希望首次点击将元素设置为display: block,请使用display: none初始化元素的样式。这是一个演示:

#reportOptionsHidden {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<h2>Initially visible</h2>
<div id="reportOptionsVisible">Here are the initially visible report options</div>
<button onclick="$('#reportOptionsVisible').toggle('fast')">Toggle</button>

<h2>Initially hidden</h2>
<div id="reportOptionsHidden">Here are the initially hidden report options</div>
<button onclick="$('#reportOptionsHidden').toggle('fast')">Toggle</button>

答案 1 :(得分:0)

切换隐藏和显示可以像这样使用。

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<div id="reportOptions" style="display:none;">
this is just test
</div>
<input type="button" onclick="fun_toggle()" value="Toggle">
<script type="text/javascript">
function fun_toggle(){
   $("#reportOptions").toggle("hide");
}
</script>

答案 2 :(得分:0)

只需在第一个切换开关的相反显示中启动CSS中的div。