jQuery - 检查锚点的 URL

发布于 2024-10-24 09:56:22 字数 1279 浏览 1 评论 0原文

我使用基于 jQuery minitabs 的 jQuery 制作了一个非常简单的选项卡界面:

$(".tabs .nav").delegate("a", "click", function(){
  var tabs = $(this).closest(".tabs");
  var target = $(this).attr("href").split('#')[1];

  $(".nav a", tabs).removeClass("active");
  $(this).addClass("active");

  $("input.active-tab", tabs).val(target);

  //hide the tabs that doesn't match the ID
  $('.tab:not(.'+target+')', tabs).hide();
  $('.tab.'+target, tabs).show();

  return false;
});

标记如下

  <div class="tabs">

    <input type="hidden" class="active-tab" name="active-tab" value="tab1" />

    <ul class="nav">
      <li><a href="#tab1" class="active">tab1</a></li>
      <li><a href="#tab2">tab2</a></li>
      <li><a href="#tab3">tab3</a></li>
    </ul>

    <div class="tab tab1">
    ....
    </div>

    <div class="tab tab2">
    ....
    </div>

    <div class="tab tab3">
    ....
    </div>
  </div>

:工作正常,但我想让活动选项卡可以根据当前 URL 设置。

例如。如果我粘贴此 URL:http://site.com/page.php#tab2,我希望 tab2 显示为活动状态,

我该怎么做?

I made a really simple tab interface using jQuery based on jQuery minitabs:

$(".tabs .nav").delegate("a", "click", function(){
  var tabs = $(this).closest(".tabs");
  var target = $(this).attr("href").split('#')[1];

  $(".nav a", tabs).removeClass("active");
  $(this).addClass("active");

  $("input.active-tab", tabs).val(target);

  //hide the tabs that doesn't match the ID
  $('.tab:not(.'+target+')', tabs).hide();
  $('.tab.'+target, tabs).show();

  return false;
});

the markup looks like:

  <div class="tabs">

    <input type="hidden" class="active-tab" name="active-tab" value="tab1" />

    <ul class="nav">
      <li><a href="#tab1" class="active">tab1</a></li>
      <li><a href="#tab2">tab2</a></li>
      <li><a href="#tab3">tab3</a></li>
    </ul>

    <div class="tab tab1">
    ....
    </div>

    <div class="tab tab2">
    ....
    </div>

    <div class="tab tab3">
    ....
    </div>
  </div>

It works fine, but I want to make so the active tab can be set based on the current URL.

for eg. if I paste this URL: http://site.com/page.php#tab2, I want the tab2 to appear as active

How can I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦旅人picnic 2024-10-31 09:56:22

位于 window.location.hash 中,

您可以搜索 $(".tabs .nav") 具有相同哈希值的链接并触发点击

that is located in window.location.hash

you can search $(".tabs .nav") for a link that has the same hash and trigger a click on it

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文