3

我想做的是在不同的 div 之间切换。这有点难以解释,但我会试一试。


当页面加载时,会有一个可见的 div 和 4 的 display:none。并且会有一个菜单。链接 1 将显示第一个 div 并隐藏所有其他 div。然后,当单击链接 2 时,可见的 div 将隐藏,而 div2 将显示。单击链接 3 时,可见的 div 将隐藏,而 div3 将显示,依此类推。基本上一次只显示一个 div。


我写了这个,但它只在有 2 个 div 时才有效。

$(function () {
  $('#link').click(function () { 
    $('#div1, #div2').toggle();
  });
});

但这只会显示隐藏的 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>

4

4 回答 4

7

如果您按如下方式定义链接​​:

<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.net/A8Ymj/

$("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();
});
于 2012-09-02T14:18:38.540 回答
3

jsFiddle 演示

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();
    });
});
于 2012-09-02T14:55:39.077 回答
0

我会在链接的 ID 和 div 之间创建一个链接:

$(".link").click(function() {

    var idIndex = parseInt(this.attr("id")); // Extracts the number of the ID
    $(".divs").hide();
    $("#div" + idIndex).show();

});

所以你基本上先隐藏所有的div,然后显示与点击的ID对应的那个。这对用户来说是不明显的。因此,而不是根据当前状态进行切换。将其视为全部关闭,然后切换您想要的那个。

于 2012-09-02T14:24:14.383 回答
0

这可能会帮助您切换 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();
        });
    });**
于 2020-04-22T21:58:05.633 回答