Jquery:切换不同的链接/div 并返回特定的链接/div

标签 jquery hide toggle hyperlink show

我想使用不同的链接切换我的内容。如果 div2div5 的内容被隐藏,则必须切换回 div1

加载页面时,将显示 newboxes1 的内容。如果我点击链接 over2over5 ,内容必须在它们之间切换。如果 newboxs2newbox5 的内容被隐藏,脚本应自动返回到 newbox1

<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>

    <script>
           function showonlyone(thechosenone) {  

     $('div[name|="newboxes"]').each(function(index) {
          if ($(this).attr("id") == thechosenone) {
               $(this).toggle(200);

          }
          else {
               $(this).hide(600);


               if ($(this).css('display') == 'none') {


                    $('#newboxes1').show();     

               }

               else {


               }

          }


     });
}




    </script> 

    <style>

    #newboxes1{
        border: 1px solid black; background-color: #CCCCCC;padding: 5px; width: 150px;

    }

    #newboxes2{
        border: 1px solid black; background-color: #CCCCCC;padding: 5px; width: 150px;

    }

    #newboxes3{
        border: 1px solid black; background-color: #CCCCCC;padding: 5px; width: 150px;

    }

    #newboxes4{
        border: 1px solid black; background-color: #CCCCCC;padding: 5px; width: 150px;

    }

    #newboxes5{
        border: 1px solid black; background-color: #CCCCCC;padding: 5px; width: 150px;

    }

    .hidden{
        display:none;
    }
    .shown{
        display:block;
    }

    </style>


</head>
<body>


         <div >
            <a id="myHeader1" href="javascript:showonlyone('newboxes1');" >Home</a>

         </div>


         <div name="newboxes" id="newboxes1" class="shown">Div #1</div>

         <div name="newboxes" id="newboxes2" class="hidden">Div #2</div>


         <div name="newboxes" id="newboxes3" class="hidden">Div #3</div>

         <div name="newboxes" id="newboxes4" class="hidden">Div #4</div>

         <div name="newboxes" id="newboxes5" class="hidden">Div #5</div>

        <div>
        <a id="myHeader2" href="javascript:showonlyone('newboxes2');" >over 1</a>
            <a id="myHeader3" href="javascript:showonlyone('newboxes3');" >over 2</a>
            <a id="myHeader4" href="javascript:showonlyone('newboxes4');" >over 3</a>
            <a id="myHeader5" href="javascript:showonlyone('newboxes5');" >over 4</a>
        </div>


</body>
</html>

最佳答案

不要将 JavaScript 函数作为 anchor 的 HREF 运行,而是将 .click 事件附加到脚本中的每个 anchor ,并使用 data- 属性来指示您想要的 DIV操纵。

试试这个:http://jsfiddle.net/mblase75/H5cN2/1/

HTML:

<div>
   <a id="myHeader1" href="javascript:" data-hide="newboxes1" >Home</a>
</div>

<div name="newboxes" id="newboxes1" class="shown">Div #1</div>
<div name="newboxes" id="newboxes2" class="hidden">Div #2</div>
<div name="newboxes" id="newboxes3" class="hidden">Div #3</div>
<div name="newboxes" id="newboxes4" class="hidden">Div #4</div>
<div name="newboxes" id="newboxes5" class="hidden">Div #5</div>

<div>
    <a id="myHeader2" href="javascript:"  data-hide="newboxes2">over 1</a>
    <a id="myHeader3" href="javascript:"  data-hide="newboxes3">over 2</a>
    <a id="myHeader4" href="javascript:"  data-hide="newboxes4">over 3</a>
    <a id="myHeader5" href="javascript:"  data-hide="newboxes5">over 4</a>
</div>

JS:

$(document).ready(function() {

    $('a[id^="myHeader"]').click(function() {
        $div = $('div#' + $(this).data('hide')); 
        $div.siblings('[name^="newboxes"]').hide(200).end().toggle(200, function() {
            if (!$div.is(':visible')) {
                $('#newboxes1').toggle(200);
            }
        });
    });

});

关于Jquery:切换不同的链接/div 并返回特定的链接/div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8066518/

相关文章:

jquery - 添加类不起作用时的动画

java - 如何在 JavaFX 中禁用/隐藏工具提示

javascript - 如何隐藏 ul 中的第一个 li?

javascript - 在 Angular JS 中切换 ng-repeat 中的图标

javascript - 当有一组 div 时使用 fadeToggle + 淡出所有其他内容

javascript - 两个 div 的 z-index 问题,其中一个具有绝对位置

jquery - jquery的Highchart圆位置

Jquery Toggle 两个功能在 1.10.1 中不起作用

javascript - 如何使用 javascript/jquery 在 chrome 中禁用鼠标滚轮滚动

javascript - 将单独的 js 文件与多个 jquery (document).ready() 事件统一的正确方法