我有一个按预期工作的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;
});
});