2013-02-28 64 views
0

我无法获得div显示&正确隐藏,有或没有淡入淡出效果。下面是对的jsfiddle(为方便起见)下面的代码:http://jsfiddle.net/bUjx7/1/淡入/淡出(显示/隐藏)带侧导航链接的div

HTML:

<div class="container"> 
    <header> 
     <ul class="sidenav"> 
      <li><h2><a data-region="nav-1" href="#"><span class="title">About</span></a></h2></li> 
      <li><h2><a data-region="nav-2" href="#"><span class="title">Services</span></a></h2></li> 
     </ul> 
    </header> 
    <div id="nav-1" class="infozone"><p>Hello I'm box 1.</p></div> 
    <div id="nav-2" class="infozone"><p>Hello I'm box 2.</p></div> 
</div> 

CSS:

.infozone{ 
    float:left; 
    position:relative; 
    height:400px; 
    width:800px; 
    background-color: #000; 
    background-color: rgba(0,0,0); 
    display:none; 
} 

JS:

$('.title a').click(function(){ 
    $('.infozone').fadeOut(550); 
    var region = $(this).attr('data-region');  
    $('#' + region).fadeIn(550); 
}) 
+0

工程对我来说很好http://jsfiddle.net/bUjx7/4/ – chriz 2013-02-28 16:10:23

回答

2

您没有选择使用jquery库在你的小提琴中。而且选择器不正确,它应该是.sidenav a而不是.title a。现在,它的工作。 检查它的jsfiddle:http://jsfiddle.net/bUjx7/5/

$('.sidenav a').click(function(){ 
    $('.infozone').fadeOut(550); 
    var region = $(this).attr('data-region');  
    $('#' + region).fadeIn(550); 
}); 
+0

非常感谢。这解决了我的问题。 – Craig 2013-02-28 16:23:02

0

我的猜测是,淡出效果仍然被触发的元素,当你试图在淡化尝试

$('.title a').click(function(){ 
    var region = $(this).attr('data-region'); 
    $('div').hasClass('infozone').not('#' + region).fadeOut(550);  
    $('#' + region).fadeIn(550); 
}); 

我还没有测试,所以请让我知道它是否有效。基本上我在所有具有infozone类的元素上调用fadeOut,而这些元素不是您希望显示的所需元素。