jQuery仅在可见时隐藏,仅在隐藏时显示

jme*_*zes 7 jquery

使用jQuery时,是否可以div仅隐藏它,如果它没有被隐藏,只有在未显示时才显示它,而不是再次向它添加相同的类?

可以在那里使用吗?

例如:

$(document).ready(function() {
 $(".trigger").click(function() {
    // Hide it but only if not hidden - hide
    // Later in the script - Show it but only If it's not visible. 
 });
});

<div class="user">Example Div</div> 
<div class="trigger">Load</div>
Run Code Online (Sandbox Code Playgroud)

我已经为这个问题解决了问题.真实的东西有很多不同.

编辑

切换不是我想要做的.切换将改变一个类.我强迫试图隐藏它,但只有它没有被隐藏.即:只有当隐藏类的当前类未被隐藏时才添加它.

If class != 'hidden' then add the Hidden class
Run Code Online (Sandbox Code Playgroud)

pal*_*aѕн 14

你可以这样做:

$(".user").click(function () {
    // Hide it but only if not hidden - hide
    $('.trigger:visible').hide();

    // Later in the script - Show it but only If it's not visible.  
    $('.trigger:hidden').show();
});
Run Code Online (Sandbox Code Playgroud)

对于更多上下文,如果符合以下条件,则视为":隐藏":

  • 它们的CSS显示值为none.
  • 它们是type ="hidden"的表单元素.
  • 它们的宽度和高度显式设置为0.
  • 或者隐藏了一个祖先元素,因此该元素不会显示在页面上.

此外,"具有可见性的元素:隐藏或不透明度:0被认为是可见的."

资料来源:https://api.jquery.com/hidden-selector