我试图弄清楚如何让 jquery-tabs 记住提交表单并重定向到 get 时哪个选项卡处于打开状态。我找到了很多例子,但他们都说在 select
事件中使用 ui.index
,其中 is in the documentation 都没有。 ;我已确认 ui.index 不是该对象的一部分。在 activate
事件中使用 $("#MyTabs").tabs("option", "selected")
可以获取之前选择的选项卡的索引,但是不是用户刚刚选择的选项卡。例如,如果选择选项卡 0 并且单击选项卡 3,我会得到 0,而不是 3。如果我不知道索引,则无法使用 active
选项。
我应该只计算 jquery 转换为选项卡的无序列表中的列表项,然后使用它们从 ui.newPanel
中的 div ID 进行映射,还是有更优雅的方法去做吧?一旦获得正确的索引,我可能会将其添加到查询字符串中。如果用户打开多个窗口或浏览器选项卡,则 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 时将其添加到查询字符串中。
谢谢!
最佳答案
创建隐藏字段。单击任何选项卡时,将选项卡索引保留在该隐藏字段上,这样下次重定向页面就不会出现问题。您可以使用隐藏字段表单元素来重定向页面。
$('#hidden_field').val($tabs.tabs('option', 'selected'));
关于jquery - 记住选定的选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13941930/