Jquery:切换不同的链接/分区并返回一个特定的链接/分区

Jquery:切换不同的链接/分区并返回一个特定的链接/分区,jquery,hide,toggle,hyperlink,show,Jquery,Hide,Toggle,Hyperlink,Show,我想使用不同的链接切换我的内容。如果div2到div5的内容被隐藏,它必须切换回div1 加载页面时,将显示Newbox 1的内容。如果我点击2到5的链接,内容必须在它们之间切换。如果newboxs2到newbox5的内容被隐藏,那么脚本将自动返回到newbox1 不要将JavaScript函数作为锚点的HREF运行,而是将.click事件附加到脚本中的每个函数,并使用数据属性指示要操作的div 试试这个: HTML: 不要将JavaScript函数作为锚点的HREF运行,而是将.click事件

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

加载页面时,将显示Newbox 1的内容。如果我点击2到5的链接,内容必须在它们之间切换。如果newboxs2到newbox5的内容被隐藏,那么脚本将自动返回到newbox1


不要将JavaScript函数作为锚点的HREF运行,而是将.click事件附加到脚本中的每个函数,并使用数据属性指示要操作的div

试试这个:

HTML:


不要将JavaScript函数作为锚点的HREF运行,而是将.click事件附加到脚本中的每个函数,并使用数据属性指示要操作的div

试试这个:

HTML:


如果您打算利用jQuery来实现您的行为,则无需在标记中使用href=javascript:blah

首先,你应该对你的链接进行分类,因为它们提供了一种行为——这使得在jQuery中很容易选择它们,同时也让你可以灵活地对链接应用独特的样式,使它们不同于普通的链接

此外,您可以简单地使用书签语法,而不是使用函数参数来标识要切换的对象。jQuery将使用它来选择要显示的正确选项

按照上述步骤,您的标记应如下所示:

<div>
    <a id="myHeader1" class="toggler" href="#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" class="toggler" href="#newboxes2" >over 1</a>
    <a id="myHeader3" class="toggler" href="#newboxes3" >over 2</a>
    <a id="myHeader4" class="toggler" href="#newboxes4" >over 3</a>
    <a id="myHeader5" class="toggler" href="#newboxes5" >over 4</a>
</div>

工作演示:

如果您打算利用jQuery来实现您的行为,则无需在标记中使用href=javascript:blah

首先,你应该对你的链接进行分类,因为它们提供了一种行为——这使得在jQuery中很容易选择它们,同时也让你可以灵活地对链接应用独特的样式,使它们不同于普通的链接

此外,您可以简单地使用书签语法,而不是使用函数参数来标识要切换的对象。jQuery将使用它来选择要显示的正确选项

按照上述步骤,您的标记应如下所示:

<div>
    <a id="myHeader1" class="toggler" href="#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" class="toggler" href="#newboxes2" >over 1</a>
    <a id="myHeader3" class="toggler" href="#newboxes3" >over 2</a>
    <a id="myHeader4" class="toggler" href="#newboxes4" >over 3</a>
    <a id="myHeader5" class="toggler" href="#newboxes5" >over 4</a>
</div>
工作演示:

$(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);
            }
        });
    });

});
<div>
    <a id="myHeader1" class="toggler" href="#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" class="toggler" href="#newboxes2" >over 1</a>
    <a id="myHeader3" class="toggler" href="#newboxes3" >over 2</a>
    <a id="myHeader4" class="toggler" href="#newboxes4" >over 3</a>
    <a id="myHeader5" class="toggler" href="#newboxes5" >over 4</a>
</div>
$('.toggler').click(function() {

    var divToToggle = $(this).attr('href');    // Extract the ID of the div

    $('div[name="newboxes"]').each(function() {
        // Hide all divs except the one we want to toggle
        if ($(this).attr('id') !== divToToggle.replace(/#/, '')) {
            $(this).hide(600);
        }
    });

    // Toggle the selected div, and use a callback to show the
    // "home" div if all others are hidden
    $(divToToggle).toggle(200, function() {
        if ($('div[name="newboxes"]:visible').length === 0) {
            $('#newboxes1').toggle(200);
        }
    });

});