Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何直接链接到特定的JavaScript选项卡?_Javascript_Html_Css - Fatal编程技术网

如何直接链接到特定的JavaScript选项卡?

如何直接链接到特定的JavaScript选项卡?,javascript,html,css,Javascript,Html,Css,我的网站有一个选项卡式界面,在所有页面中都一致使用。我可以链接到基本页(第一个选项卡),但不知道如何链接到特定选项卡 这是我的JavaScript: $(document).ready(function() { $(".tabs a").click(function() { var $this = $(this); $(".panel").hide(); $(".tabs a.active").removeClass("active"); $this.addC

我的网站有一个选项卡式界面,在所有页面中都一致使用。我可以链接到基本页(第一个选项卡),但不知道如何链接到特定选项卡

这是我的JavaScript:

$(document).ready(function() {
  $(".tabs a").click(function() {
    var $this = $(this);
    $(".panel").hide();
    $(".tabs a.active").removeClass("active");
    $this.addClass("active").blur();
    var panel = $this.attr("href");
    $(panel).fadeIn(250);
    return false;
  });
$(".tabs li:first-of-type a").click();
});
我的每个页面都是这样设置的:

<div id="aboutContainer">
    <ul class="tabs">
        <li><a href="#panel1">About Us</a></li>
        <li><a href="#panel2">Contact Us</a></li>
        <li><a href="#panel3">Mailing List</a></li>
        <li><a href="#panel4">Terms</a></li>
        <li><a href="#panel5">Privacy Policy</a></li>
        <li><a href="#panel6">Help</a></li>
    </ul>
        <div class="panelContainer">
            <div class="panel" id="panel1">
                <?php include('includes/aboutme.php'); ?>
            </div>

            <div class="panel" id="panel2">
                <?php include('includes/contact.php'); ?>
            </div>

            <div class="panel" id="panel3">
                <?php include('includes/mailinglist.php'); ?>
            </div>

            <div class="panel" id="panel4">
                <?php include('includes/terms.php'); ?>             
            </div>

            <div class="panel" id="panel5">
                <?php include('includes/privacypolicy.php'); ?>
            </div>

            <div class="panel" id="panel6">
                <?php include('includes/cheekyreference.php'); ?>
            </div>
        </div>
</div>
$(".tabs a[href="+window.location.hash+"]").click();

任何指点都将不胜感激。我对JavaScript非常陌生,在网上搜索时一直找不到答案

稍微澄清一下:


如果我在about.php页面上,选项卡式界面可以工作。但是我试图建立的链接类型如下:如果我在另一个页面上,我想链接到about页面上的特定选项卡。我有一个导航页脚,我希望能够单击超链接,如“邮件列表”或“联系人”,并显示正确的页面和正确的选项卡。

如果您想特别单击术语选项卡,例如,您可以:


$(“.tabs a[href=”#panel14'])。单击()

这可能有些过分,但您应该可以通过客户端站点路由来实现

您首先需要设置根据地址栏中的url激活的“路由”,然后您可以使用以下格式的链接,链接到关于 并在激活的路线中激活相应的选项卡(在该选项卡上触发单击事件)

这里有一个指向jQuery插件的链接,该插件提供JavaScript路由

当然还有其他的路由解决方案,这里有一个链接,链接到关于这个主题的stackoverflow帖子
实现这一点的技术是使用url的哈希部分。例如:

关于.php#panel1

或者,类似地,使用hashbang:

关于.php#!小组1

(如果你关心SEO,hashbang是一个更好的选择。)

然后,您需要在页面中包含一个脚本,该脚本将检测url的哈希部分,并相应地激活选项卡

很抱歉,我一直在这样做,但没有公开的例子。我会在有帖子的时候更新

在jQuery中,它将如下所示:

<div id="aboutContainer">
    <ul class="tabs">
        <li><a href="#panel1">About Us</a></li>
        <li><a href="#panel2">Contact Us</a></li>
        <li><a href="#panel3">Mailing List</a></li>
        <li><a href="#panel4">Terms</a></li>
        <li><a href="#panel5">Privacy Policy</a></li>
        <li><a href="#panel6">Help</a></li>
    </ul>
        <div class="panelContainer">
            <div class="panel" id="panel1">
                <?php include('includes/aboutme.php'); ?>
            </div>

            <div class="panel" id="panel2">
                <?php include('includes/contact.php'); ?>
            </div>

            <div class="panel" id="panel3">
                <?php include('includes/mailinglist.php'); ?>
            </div>

            <div class="panel" id="panel4">
                <?php include('includes/terms.php'); ?>             
            </div>

            <div class="panel" id="panel5">
                <?php include('includes/privacypolicy.php'); ?>
            </div>

            <div class="panel" id="panel6">
                <?php include('includes/cheekyreference.php'); ?>
            </div>
        </div>
</div>
$(".tabs a[href="+window.location.hash+"]").click();

注意:您也可以使用querystring,但是如果您已经在页面上,则哈希将阻止页面刷新。

您正在尝试以字符串淡入,这是行不通的。您能否详细说明一下您想做什么,您想链接什么?您使用的是jQuery UI吗?如果我在about.php页面上,选项卡式界面可以工作。但是我试图建立的链接类型如下:如果我在另一个页面上,我想链接到about页面上的特定选项卡。我有一个导航页脚,我想能够点击说“邮件列表”或“联系人”,并有正确的页面显示以及正确的标签。我希望这能澄清问题。不,我没有使用jQueryUI。你也应该尝试解释你的答案,即使你认为答案是不言自明的——其他人可能不会。只是做了一些stackoverflow.com/review,没有修改。