我想做的是在不同的div之间切换。这有点难以解释,但我会给它一个尝试。
当页面加载时,将有div是可见的,4与显示:无。链接1将显示第一个div,并隐藏所有其他。然后当点击链接2时,可见的div会隐藏,div2会显示。当点击链接3时,可见的div会隐藏,div3会显示,以此类推,基本上一次只显示一个div。
我写了这个,但是只有当有2个div的时候才有效。
$(function () {
$('#link').click(function () {
$('#div1, #div2').toggle();
});
});
但这只会显示隐藏的div,而隐藏显示的div。
好吧,我做了,发现可以做得更简单。这是我做的。它不是很优雅,但它的工作。
$(document).ready(function () {
$('.slidingDiv').hide();
$('.show_hide').show();
$('.show_hide').click(function () {
$('.slidingDiv').slideToggle();
$('.slidingDiv2').hide('slow');
$('.slidingDiv3').hide('slow');
$('.slidingDiv4').hide('slow');
$('.slidingDiv5').hide('slow');
});
});
$(document).ready(function () {
$('.slidingDiv2').hide();
$('.show_hide2').show();
$('.show_hide2').click(function () {
$('.slidingDiv2').slideToggle();
$('.slidingDiv').hide('slow');
$('.slidingDiv3').hide('slow');
$('.slidingDiv4').hide('slow');
$('.slidingDiv5').hide('slow');
});
});
$(document).ready(function () {
$('.slidingDiv3').hide();
$('.show_hide3').show();
$('.show_hide3').click(function () {
$('.slidingDiv3').slideToggle();
$('.slidingDiv').hide('slow');
$('.slidingDiv2').hide('slow');
$('.slidingDiv4').hide('slow');
$('.slidingDiv5').hide('slow');
});
});
$(document).ready(function () {
$('.slidingDiv4').hide();
$('.show_hide4').show();
$('.show_hide4').click(function () {
$('.slidingDiv4').slideToggle();
$('.slidingDiv').hide('slow');
$('.slidingDiv2').hide('slow');
$('.slidingDiv3').hide('slow');
$('.slidingDiv5').hide('slow');
});
});
$(document).ready(function(){
$('.slidingDiv5').hide();
$('.show_hide5').show();
$('.show_hide5').click(function () {
$('.slidingDiv5').slideToggle();
$('.slidingDiv').hide('slow');
$('.slidingDiv2').hide('slow');
$('.slidingDiv3').hide('slow');
$('.slidingDiv4').hide('slow');
});
});
而且 <a href="#" class="show_hide"><span class="nav">link</span></a>
如果你定义你的链接如下。
<a href="#" data-toggle="#div1">link 1</a>
<a href="#" data-toggle="#div2">link 2</a>
<div id="div1">div 1</div>
<div id="div2">div 2</div>
那么你就可以让事情变得简单。http:/jsfiddle.netA8Ymj.
$("a[data-toggle]").on("click", function(e) {
e.preventDefault(); // prevent navigating
var selector = $(this).data("toggle"); // get corresponding selector from data-toggle
$("div").hide();
$(selector).show();
});
HTML:
<a href='#' class='link'>link 1</a>
<div id='#div1' class='panel active'> Visible </div>
<a href='#' class='link'>link 2</a>
<div id='#div1' class='panel'> Visible </div>
<a href='#' class='link'>link 3</a>
<div id='#div1' class='panel'> Visible </div>
CSS:
div.panel { display:none; }
div.panel.active { display:block; }
JS。
$(function() {
$(".link").click(function(e) {
e.preventDefault();
$('div.panel:visible').hide();
$(this).next('div.panel').show();
});
});
我会在链接的ID和div之间建立一个链接。
$(".link").click(function() {
var idIndex = parseInt(this.attr("id")); // Extracts the number of the ID
$(".divs").hide();
$("#div" + idIndex).show();
});
所以你基本上是先隐藏所有的div,然后再显示与被点击的ID相对应的div。这对于用户来说是不明显的。所以不是根据当前状态来切换。就当是把所有的都切换掉,然后再把你想要的那个切换开。
这或许可以帮助你切换n个div的数量。
**$(document).ready(function(){
$("a[data-toggle]").on("click", function(e) {
e.preventDefault(); // prevent navigating
var selector = $(this).data("toggle"); // get corresponding selector from data-toggle
//alert(selector);
$(selector).fadeIn(1000);
$(selector).siblings().hide();
});
});**