我正在使用jquery选项卡,并尝试在每个选项卡中进行分页,但一切正常,如果我点击进入下一页说第二个选项卡,它就可以了,但是将我传送到第一个选项卡打开,因此您必须继续单击第二个选项卡才能查看新内容。我的问题是如何才能实现这一点,以便当用户点击分页中的下一页时,内容会刷新,但相同的标签会保持打开状态。
我计划如何将其纳入我当前的代码是使用网址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(必须为列表注释)
//<div id="tabsX"> <div id="tabContent"> <ul class="tabs">
// <!--<li><a id="all" href="#all" class="all">All</a></li>-->
// <li><a href="#inbox" class="inbox"></a></li>
// <li><a href="#outbox" class="outbox"></a></li>
// <li><a href="#compose" class="compose"></a></li>
//<li><a href="#trash" class="trash"></a></li>
//
// </ul>
和标签内容的html(仅显示一个没有内容的示例,因为会显示太多内容)
<div id="inbox" class="tab_content">
<div id="inbox_header" style="display:table-cell; vertical-align:middle">
<!---content--->
</div><!---end inbox_content--->
</div><!---end inbox--->
我真的很感激任何帮助,因为我似乎无法为自己找到任何解决方案
答案 0 :(得分:2)
您可以使用here中的以下功能来捕捉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
)};
我在-1
中添加了eq
,因为它是0-based
。查看此处的文档$.eq
答案 1 :(得分:0)
我建议查看jquery选项卡的文档。您可以使用许多选项。 cookie选项:
$( ".selector" ).tabs({ cookie: { expires: 30 } });
将最新选择的标签存储在Cookie中。如果未定义所选选项,则cookie用于确定最初选择的选项卡。需要cookie插件,也可以在下载构建器的开发包&gt;外部文件夹中找到。该对象需要具有cookie插件期望的形式的键/值对作为选项。可用选项(示例):{expires:7,path:'/',domain:'jquery.com',secure:true}。从jQuery UI 1.7开始,也可以通过name属性定义使用的cookie名称。
此外,您可以使用所选选项。这允许您指定在初始化时应打开的选项卡:
$( ".selector" ).tabs({ selected: 3 });
第三种选择是通过ajax调用来加载选项卡的内容。