2013-01-23 88 views
0

我试图找出一种方法来隐藏一个div使用jQuery自动时,另一个div显示。有没有办法做到这一点?如果一个div显示隐藏另一个?

我真的很新的jQuery的,现在还在学习,但我想这将是这样的:

<script> 
    (function() { 
     if ($('.infobox-favourites').is(":visible")) { 
      $(".infobox-more").fadeOut(500); 


     } 
    }); 
</script> 
+2

您是否尝试过这个是否行得通 –

+1

不干净的解决方案?如果你的元素改变了,你应该改变导致你的元素变得可见的代码 –

+0

现在你的代码应该可以工作,但是它只会在页面加载后执行一次,在这种情况下,如果'.infobox-favourites'是可见的(最初),jquery会隐藏'.infobox-more',但是你的代码永远不会再被执行,如果你想隐藏'.infobox-more'舔,你应该将fadeOut应用于该按钮点击处理程序中的'infobox-more',因为没有事件通知你div可见性已更改。 –

回答

0

入住这JsBin例http://jsbin.com/oreyeg/1/edit

使用此代码

setInterval(function() { 
    var div1 = $('.infobox-favourites').css("display"); 
     if (div1 != 'none') { 
      $(".infobox-more").fadeOut(500);  
     } 

    },200); 

使用setInterval在每200ms后执行代码以检查更改。如果您只想执行一次,您可以将其删除。

不知道问题出在哪里。我想问题是:可见,使用:隐藏必须工作,但在示例中我使用CSS方法来获取显示属性的值,它的工作。

注:我试图运行的代码,而setInterval的,并没有工作:(但setTimeout的帮助执行脚本

setTimeout(function() { 
//$(".div2").hide(); 
    var div1 = $('.div1').css("display"); 
     if (div1 != 'none') { 
      $(".div2").fadeOut(500);  
     } 
    else { 
    $(".div1").fadeIn(500); 
    } 

    },0); 
相关问题