-2

如果子 div 被隐藏,我想隐藏父 div 并在 body 中添加一个类,但是当子 div 可见时会发生

if(jQuery('#toolbar > div').is(':visible')){
    jQuery('#toolbar').slideToggle('fast');
    jQuery('body').toggleClass('body-margin');
}

我的代码有什么问题?

<div id="toolbar">
    <div class="buttons" ></div>
</div>
4

3 回答 3

1

尝试这个

if(jQuery('#toolbar > div').is(':hidden')){
  jQuery('#toolbar').slideToggle('fast');
  jQuery('body').toggleClass('body-margin');
}
于 2013-07-24T12:58:57.407 回答
1

如果我理解正确,您的代码是倒退的。您可以检查是否有任何按钮 div 可见,如果不使用动画隐藏并通过切换或直接使用addClass() 此处添加类,我检查任何具有“按钮”类的子 div:

if (!jQuery('#toolbar').find('div.buttons').filter(function () {
    return $(this).is(':visible');
}).length) {
    jQuery('#toolbar').slideToggle('fast');
    jQuery('body').toggleClass('body-margin');
}
于 2013-07-24T13:16:46.417 回答
1

你需要

if(!jQuery('#toolbar').children('div:visible').length){
    jQuery('#toolbar').slideToggle('fast');
    jQuery('body').toggleClass('body-margin');
}

这将检查其中是否#toolbar没有可见的 div。

于 2013-07-24T14:12:19.523 回答