我试图弄清楚如何获得jquery-选项卡,以记住表单提交和重定向到get时哪个选项卡在哪个选项卡上。我已经找到了很多例子,但是他们都说在select
事件中使用select
,两个在文档中都没有;我已经确认ui.index
不是该对象的一部分。在$("#MyTabs").tabs("option", "selected")
事件中使用activate
可以获得先前选择的选项卡的索引,而不是用户刚才选择的选项卡的索引。如图中所示,如果选择了选项卡0,然后单击选项卡3,则得到0,而不是3。如果不知道索引,则不能使用active
选项。
我应该只计算jquery正在变成选项卡的无序列表中的列表项,然后使用这些项从ui.newPanel
中的div映射,还是有更优雅的方法来实现呢?一旦找到了正确的索引,我可能会将其添加到查询字符串中。如果用户打开了多个窗口或浏览器选项卡,cookie解决方案将不适合我使用。
编辑:问题是active
选项接受索引,但是activate
事件的ui
参数似乎只提供了选项卡和制表符内容的li
和div
元素。因为过去有一个ui.index
属性,所以我想知道我是不是遗漏了什么。
编辑:这是我使用的解决方案,感谢Kush;为了简洁起见,我省略了一些代码。
function Document_OnReady() {
$("#MyTabs").tabs({
active: $("input.InitialTabIndex").val()
});
function SetInitialTab() {
$("input.InitialTabIndex").val($("#MyTabs").tabs("option", "selected"));
}
function Form_OnSubmit() {
SetInitialTab();
}
当服务器处理POST时,我读取表单值,然后在重定向到get时将其添加到查询字符串中。
谢谢!
发布于 2012-12-19 05:38:43
创建一个隐藏的字段。在单击任意选项卡时,将选项卡索引保留在该隐藏字段上,因此下次重定向页面不会出现问题。您可以使用隐藏字段窗体元素重定向页面。
$('#hidden_field').val($tabs.tabs('option', 'selected'));
发布于 2012-12-18 13:41:59
通常,服务器端代码向选定的元素添加一个类名,并将页面吐出到浏览器。
发布于 2012-12-19 05:38:46
试试这个:
<div id="selector" class="ui-mainColTabs">
<ul>
<li><a href="#tabs-1">Tab 1</a></li>
<li><a href="#tabs-2">Tab 2</a></li>
</ul>
<div id="tabs-1"></div>
<div id="tabs-2"></div>
</div>
<form id="form">
<input type="submit" value="Kill" />
</form>
<a href="#" id="getCookie">Get</a>
<script type="text/javascript">
<!--
$(document).ready(function() {
$("#selector").tabs({
cookie: {
name: 'tab_cookie',
expires: 7
}
});
$('#getCookie').click(function() {
alert($.cookie('tab_cookie'));
});
$('#form').submit(function() {
alert($.cookie('tab_cookie'));
});
});
//-->
</script>
您需要从jQuery添加这里的cookie文件
https://stackoverflow.com/questions/13941930
复制相似问题