我在我的项目中使用jquery库。我有一个jquery tabs的可怕问题。解决方案是,当我在第三个选项卡时,我回发我的表单,选项卡重新加载并转到第一个选项卡。 我正在寻找解决问题很长时间。
<script type="text/javascript">
$(document).ready(function() {
$("#example > ul").tabs({ remote: true, cache: true });
});
</script>
那我怎么解决这个问题呢? 你的答案。
答案 0 :(得分:24)
您没有指定是否使用ASP.NET,但如果您使用ASP.NET,则可以将当前选定的选项卡存储在&lt; asp:HiddenField /&gt;中。而不是cookie:
<script type="text/javascript" language="javascript">
$(function() {
$("#example").tabs({
show: function() {
var sel = $('#example').tabs('option', 'selected');
$("#<%= hidLastTab.ClientID %>").val(sel);
},
selected: <%= hidLastTab.Value %>
});
});
</script>
<asp:HiddenField runat="server" ID="hidLastTab" Value="0" />
如果不是ASP.NET,你可能会做类似的事情。
答案 1 :(得分:13)
标签可以使用Cookie来存储当前标签。看一下标签documentation。在选项列表中,有一个如何使用cookie存储当前选项卡的示例:
$('.selector').tabs({ cookie: { expires: 30 } });
这需要包含jquery cookies plugin。
答案 2 :(得分:1)
我试图使用joelsand发布的解决方案。但是,jQuery选项卡选项和事件已更改。当前文档位于http://api.jqueryui.com/tabs/。
我使用“激活”事件代替“show”事件。 我使用“有效”选项代替“已选择”选项。 我使用了一个JavaScript变量(在UpdatePanel之外声明)
而不是隐藏字段答案 3 :(得分:0)
我遇到了同样的问题,通过在jquery选项卡中添加以下内容来修复选择事件处理程序:
$("div.ui-tabs-panel").html("");
它有效地清除所有现有面板以防止形状堆叠。