1

我正在尝试在点击时替换 div。为此,我正在使用以下脚本

$(function(){
var $containers = $("#center > div").hide();

$('div span a').each(function(i,el){
  var idx = i;
  $(this).click(function(e){
    var $target = $containers.filter(':eq(' + idx + ')');
    // Fade out visible div
    if($containers.filter(':visible').not($target).length){
      $containers.filter(':visible').fadeOut();
    }
    // Fade in new div if not already showing
    $target.not(':visible').fadeIn();
    e.preventDefault();
  })
})
});

html代码是

<div>
 <div>
<span><a href="#">Home</a></span>
  <span><a href="#">About us</a></span>
<span><a href="#">Specifications</a></span>
<span><a href="#">Contact us</a></span>
</div>
<div id="center">
<div class="container">
Hey , this is Home div contents

</div>
<div class="container">
 Hey , this is About us div contents

</div>
<div class="container">
 Hey , this is Specifications div contents

</div>

<div class="container">
 Hey , this is Contact us div contents

  </div>
    </div>
  </div>

这里所有的 div 最初都是隐藏的。我想在点击时显示第一个 div 和其他 div

请帮忙,

谢谢

4

6 回答 6

1

使用:first选择器

例子 :

$(function(){
    var $containers = $("#center > div").hide();
    $("#center > div:first").show(); // OR $containers.first().show();
            // existing code
});
于 2012-10-27T10:36:46.330 回答
1

替换这个

var $containers = $("#center > div").hide(); 

有了这个

var $containers = $("#center > div").not(':eq(0)').hide();

演示

于 2012-10-27T10:40:45.517 回答
1

1) 隐藏除第一个以外的所有 div

2)在标签点击时,淡出所有div,并淡入与点击索引对应的那个

$("#center").children().not(':first').hide();

$('div span a').click(function(ev) {
    $('#center').children().fadeOut().eq($(this).parent().index()).fadeIn();
    ev.preventDefault();
}
于 2012-10-27T10:41:11.570 回答
1

只需更换

var $containers = $("#center > div").hide();

var $containers = $("#center > div").not(':first').hide();

于 2012-10-27T10:41:16.047 回答
1

像这样试试

$(function(){
var $containers = $("#center > div").not(':eq(0)').hide();

$('div span a').each(function(i,el){
  var idx = i;
  $(this).click(function(e){
    var $target = $containers.filter(':eq(' + idx + ')');
    // Fade out visible div
    if($containers.filter(':visible').not($target).length){
      $containers.filter(':visible').fadeOut();
    }
    // Fade in new div if not already showing
    $target.not(':visible').fadeIn();
    e.preventDefault();
  })
})
});​
于 2012-10-27T10:43:38.373 回答
1
var $containers = $("#center > div").hide();
$containers.first().show()

$('div span a').click(function(e){
    e.preventDefault(); 
    var ind = $(this).parent().index();
    $containers.fadeOut().filter(':eq('+ind+')').fadeIn()
})

http://jsfiddle.net/kCa6w/

于 2012-10-27T10:43:49.463 回答