JQuery toggle / html:更改div

时间:2018-01-27 05:17:48

标签: javascript jquery toggle innerhtml

我目前正在开发一个带有主div和带链接的侧栏的博客布局。我希望每个链接都可以更改主div的内容。 我尝试使用切换和html。

这是每个链接的主要类和内容:

<div id="main"></div>  
  <div id="works">
      These are my works.
  </div>

  <div id="info">
      About me.
  </div>

  <div id="tags">
      Tag list.
  </div>

旁边栏:

<div id="mainlink">     
   <button class="linkd" id="butt1"> works </button>
   <button class="linkd" id="butt2"> info </button>
   <button class="linkd" id="butt3"> Tags </button>
</div>

所以,当我点击“工作”按钮时,我希望该div的内容进入主div。

这是JQuery的片段(不起作用):

$(function(){  
 $('#butt1').click(function() {
    $('#main').html($('#works'));
    $('#works').toggle();
    $('#info').hide();
    $('#tags').hide();
});

$('#butt2').click(function() {
    $('#main').html($('#info'));    
    $('#info').toggle();
    $('#works').hide();
    $('#tags').hide();
});

$('#butt3').click(function() {
    $('.mainp').html($('#tags'));
    $('#tags').toggle();
    $('#info').hide();
    $('#works').hide();
});

});

注意:在我的CSS上我也有 display:none

1 个答案:

答案 0 :(得分:1)

我认为通过使用HTML5的数据属性为按钮指定关系来显示和隐藏div是一种简单的方法(这里id用于data-target属性)。请参阅下面的代码段......

$(function(){
  $('[data-target]').on('click', function(){
    var target = $(this).data('target');
    $(target).siblings().hide().end().show();
  });
});
#main > div:not(:first-child) {display: none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mainlink">     
   <button class="linkd" data-target="#works"> works </button>
   <button class="linkd" data-target="#info"> info </button>
   <button class="linkd" data-target="#tags"> Tags </button>
</div>

<div id="main">
  <div id="works">
      These are my works.
  </div>

  <div id="info">
      About me.
  </div>

  <div id="tags">
      Tag list.
  </div>
</div>