Jquery选项卡保持选项卡打开,这是url中的subid

我正在使用jquery选项卡,并尝试在每个选项卡中进行分页,但一切正常,如果我点击进入下一页说第二个选项卡,它会很好,但会将我传送到第一个选项卡打开,所以您必须继续单击第二个选项卡才能查看新内容。 我的问题是如何使它成为当用户点击分页中的下一页时,内容被刷新但相同的选项卡保持打开状态。

我关于如何将其纳入我当前代码的计划是使用url mail.php?page=2&tid=2

其中page = 2是分页的引用,但是我想要tid(tab id)使得该选项卡是开放的。

这是您可能认识到的标签的javascript

 $(document).ready(function() { //Default Action $(".tab_content").hide(); //Hide all content $("ul.tabs li:first").addClass("active").show(); //Activate first tab $(".tab_content:first").show(); //Show first tab content //On Click Event $("ul.tabs li").click(function() { $("ul.tabs li").removeClass("active"); //Remove any "active" class $(this).addClass("active"); //Add "active" class to selected tab $(".tab_content").hide(); //Hide all tab content var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content $(activeTab).fadeIn(); //Fade in the active content return false; }); }); 

标签的html(必须注释掉列表)

 //
    // <!--
  • All
  • --> //
  • //
  • //
  • //
  • // //

和标签内容的html(仅显示一个没有内容的示例,因为将显示太多)

 

我真的很感激任何帮助,因为我似乎无法为自己找到任何解决方案

您可以使用此处的以下函数来捕获javascript中的tid参数

 function getParameterByName(name) { name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); var regexS = "[\\?&]" + name + "=([^&#]*)"; var regex = new RegExp(regexS); var results = regex.exec(window.location.search); if(results == null) return ""; else return decodeURIComponent(results[1].replace(/\+/g, " ")); } 

然后像这样更改你的代码

 var tabIndex = parseInt(getParameterByName('tid'),10); $("ul.tabs li").eq(tabIndex - 1).addClass("active").show(); //Activate first tab $(".tab_content").eq(tabIndex - 1).show(); //Show first tab content 

所以你完整的js代码将是

 function getParameterByName(name) { name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); var regexS = "[\\?&]" + name + "=([^&#]*)"; var regex = new RegExp(regexS); var results = regex.exec(window.location.search); if(results == null) return ""; else return decodeURIComponent(results[1].replace(/\+/g, " ")); } $(document).ready(function() { //Default Action $(".tab_content").hide(); //Hide all content var tabIndex = parseInt(getParameterByName('tid'),10); if(!tabIndex) tabIndex = 1; $("ul.tabs li").eq(tabIndex - 1).addClass("active").show(); //Activate first tab $(".tab_content").eq(tabIndex - 1).show(); //Show first tab content //On Click Event // add you onlick code here )}; 

我在eq添加-1 ,因为它是0-based 。 检查文档$ .eq

我建议查看jquery选项卡的文档。 您可以使用许多选项。 cookie选项:

 $( ".selector" ).tabs({ cookie: { expires: 30 } }); 

将最新选定的选项卡存储在cookie中。 如果未定义所选选项,则使用cookie确定最初选择的选项卡。 需要cookie插件,也可以在下载构建器的development-bundle> external文件夹中找到。 该对象需要具有cookie插件期望的forms的键/值对作为选项。 可用选项(示例):{expires:7,path:’/’,domain:’jquery.com’,secure:true}。 从jQuery UI 1.7开始,还可以通过name属性定义正在使用的cookie名称。

此外,您可以使用所选的选项。 这允许您指定在初始化时应打开的选项卡:

 $( ".selector" ).tabs({ selected: 3 }); 

第三种选择是通过ajax调用来加载选项卡的内容。