jquery show / hide annoucement

时间:2018-01-24 03:38:23

标签: jquery show-hide

我希望在显示和显示隐藏时隐藏我的声明。 我做错了什么?

$("#button_announcement").click(function(){
  $('#announcement').show() ? $('#announcement').hide(300) : $('#announcement').show(300);
  //console.log(announcement);
});

控制台始终将显示值更改为“无”#39;。 我正在尝试:

$('#announcement').css('display', 'block') ? $('#announcement').hide(300) : $('#announcement').show(300);

也不起作用。

3 个答案:

答案 0 :(得分:0)

您可以尝试jquery toogle功能来显示或隐藏匹配的元素。它易于使用,无需额外检查。即使您可以通过持续时间来设置过渡动画。

答案 1 :(得分:0)

你可以使用.is(':visible'):

$('#announcement').is(':visible') 
    ? $('#announcement').hide(300) 
    : $('#announcement').show(300);

另一个选择是应用一个类然后使用.hasClass()

答案 2 :(得分:0)

正如Braj所说,只需使用其中一个切换功能。

这是错的。你的三元函数是检查$('#announcement')。show()是否为真。它总是计算为true,即显示元素的函数。你想要$('#announcement').is(':visible')

$("#button_announcement").click(function(){
  $('#announcement').is(':visible') ? $('#announcement').hide(300) : $('#announcement').show(300);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="button_announcement">Toggle</button>
<div id="announcement">Hello World</div>

相关问题