jQuery选项卡,在第二次单击后恢复为默认选项卡

时间:2013-12-03 17:05:44

标签: jquery tabs click

我有一个按预期工作的jQuery选项卡代码。 但是现在我正在尝试添加一些功能。如果单击选项卡导航链接,则应执行其默认操作,即打开选项卡。

如果再次单击相同的选项卡导航链接,则刚刚打开的选项卡应该关闭,它应该还原为最初打开的选项卡。

我尝试将this snippet中的代码添加到我自己的标签代码中。但我无法让它发挥作用。但是控制台中没有错误。

任何指向正确方向的人都会受到赞赏。

编辑:哦,我玩了很多。如果我想恢复默认选项卡,则应该删除在第一次单击后添加的所有内容的推理。我现在可以让它在每次点击时显示/隐藏一个标签(可能以最低效的方式,但它有点工作)。

然而,当从一个标签导航链接转到另一个标签导航链接时,它也“有效”。而不是仅在单击相同元素两次之后才执行此操作。我创建了fiddle,但由于某种原因,标签甚至不会在那里工作。不知道我是否需要在小提琴中勾选任何其他方块(这是我的第一个小提琴:):

EDIT2

我想通过this question来解决这个问题。

工作代码:

  jQuery(document).ready(function ($) {

  $(".tab_content:not(:first)").addClass("hide").hide();
  $("ul.tabs li:first").addClass("active").show();

  var previousTarget=null;
  $("a.tabsclic").click(function() {
  if(this===previousTarget) {
             $(".tab_content:not(:first)").addClass("hide").hide();
             $(".tab_content:first").removeClass("hide").show();
             $("ul.tabs li:first").addClass("active").show();
             var $this = $(this).attr('href');
             $("ul.tabs li >     a.tabsclic[href=" + $this + "]").parent().removeClass("active");
             previousTarget=null;
             return false;
  }
        previousTarget=this;
        $('html,body').animate({
            scrollTop: 0
        });
        $("ul.tabs li").removeClass("active");
        $("#topics-fav a").removeClass("active");
        $(this).addClass('active');
        var $this = $(this).attr('href');
        $("ul.tabs li >     a.tabsclic[href=" + $this + "]").parent().addClass("active");
        $(".tab_content").addClass("hide").hide();
        var activeTab = jQuery($this);
        if ($.browser.msie) {
            $(activeTab).show();
        } else {
            $(activeTab).fadeIn();
        } return false;
   });
});

0 个答案:

没有答案