经过进一步的研究和试错,我成功解决了自己的jQuery选项卡问题。这是一个有效的示例。我不知道这是否是最优雅的解决方案,但它可以工作。希望能对你有所帮助。
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/redmond/jquery-ui-1.10.1.custom.min.css">
<script language="javascript" type="text/javascript" src="js/jquery/jquery-1.9.1.js"></script>
<script language="javascript" type="text/javascript" src="js/jquery/jquery-ui-1.10.1.custom.min.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$("#tabs").tabs({active: document.tabTest.currentTab.value});
$('#tabs a').click(function(e) {
var curTab = $('.ui-tabs-active');
curTabIndex = curTab.index();
document.tabTest.currentTab.value = curTabIndex;
});
});
</script>
</head>
<body>
<form name="tabTest" method="post" action="tab">
<input type="hidden" name="currentTab" value="2"/>
<div id="tabs">
<ul>
<li><a href="#tabs-1">Tab 1</a></li>
<li><a href="#tabs-2">Tab 2</a></li>
<li><a href="#tabs-3">Tab 3</a></li>
</ul>
<div id="tabs-1">Tab 1 Content</div>
<div id="tabs-2">Tab 2 Content</div>
<div id="tabs-3">Tab 3 Content</div>
</div>
</form>
</body>
这是我如何回答之前的问题。
1. 如何根据查询字符串设置活动选项卡?
最终,我不需要使用查询字符串。我在我的URL末尾添加了#tabs-x。例如,如果我想要直接链接到第三个选项卡,我编写了以下链接:
localhost:8080/pm/detail?prjID=2077#tabs-3
2. 当用户在我的浏览器应用程序中选择保存按钮并重新加载浏览器页面时,如何保持他们在按保存之前所在的标签页上的焦点?
我通过捕获点击事件、获取当前标签页索引并设置隐藏表单元素“currentTab”来解决这个问题,以存储当前标签页值。然后在 Java Servlet 中检索隐藏表单元素,并在页面重新加载时进行重置。
$(document).ready(function() {
$("#tabs").tabs({active: document.tabTest.currentTab.value});
$('#tabs a').click(function(e) {
var curTab = $('.ui-tabs-active');
curTabIndex = curTab.index();
document.tabTest.currentTab.value = curTabIndex;
});
});
3. 当用户返回我的浏览器应用程序的“项目页面”时,如何设置活动选项卡?例如,在我的 Web 应用程序中,如果用户浏览到任务页面,然后返回项目页面,如何重置他们之前所在的选项卡?
解决方法是在我的 Java Servlet 中设置一个会话变量来存储隐藏表单元素“currentTab”。这样,当我返回“项目页面”时,我可以像在保存表单操作中设置它一样重新设置“currentTab”值。
希望这个示例能帮助其他人解决 jQuery 选项卡问题!