JavaScript jQuery 个选项卡的函数
JavaScript function for jQuery tabs
过去 2 天我一直在谷歌搜索,试图弄清楚如何将事件添加到我的选项卡,但我无法使用任何解决方案。我对这些东西完全不知所措,所以请包括简单的解释。到目前为止,我有一些选项卡(我刚刚在其中复制并粘贴):
<div id="tabs" role="tabpanel">
<!-- Nav tabs -->
<ul id="tabs" class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#tabs-1" aria-controls="Active" role="tab" data-toggle="tab">Active</a></li>
<li role="presentation"><a href="#tabs-2" aria-controls="Inactive" role="tab" data-toggle="tab">Inactive</a></li>
<li role="presentation"><a href="#tabs-3" aria-controls="Retired" role="tab" data-toggle="tab">Retired</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="Active"></div>
<div role="tabpanel" class="tab-pane" id="Inactive"></div>
<div role="tabpanel" class="tab-pane" id="Retired"></div>
</div>
</div>
我还复制并粘贴了一个 JavaScript 函数,它看起来与我处理过的任何其他 JavaScript 函数不同,但它不起作用(永远不会触发警报语句):
<script type="text/javascript" >
$(function () {
$('#tabs').tabs({
activate: function (event, ui) {
var $activeTab = $('#tabs').tabs('option', 'active');
if ($activeTab == 1) {
alert(Tab 1!);
}
if ($activeTab == 2){}
if ($activeTab == 3){}
}
});
});
</script>
我正在使用 Spring MVC,我的目的是通过 JavaScript 函数将选项卡的值发送回控制器(因为我看不到其他方法)。基于该值,页面上的 table 填充了特定数据(在本例中为 'modules')。我已经创建了一个控制器方法,但我不确定它应该是 get 还是 post 或者如何在其中获取选项卡值。这是我尝试的控制器方法代码:
@RequestMapping(method = RequestMethod.POST, value = "/update")
public final String changeTab(final ModelMap model, @RequestParam(value = "id") String id) {
System.out.println(id);
//model.addAttribute("modules", moduleDao.sortStatus(status));
return "module/admin";
}
我可以对我的代码做些什么来实现这个目标?我走在正确的轨道上吗?任何帮助深表感谢。
[编辑]
您的 HTML 中有些东西破坏了 jQuery 标签代码。
考虑这个 fiddle:http://jsfiddle.net/1r712od4/2/ - 它工作正常。
尝试从您的代码中取出不需要的 aria-controls
和 类 并重试。
你需要的 JS 是这样的:
$('#tabs').tabs({
activate: function (event, ui) {
var activeTab = ui.newTab.data("tabid");
if (activeTab == 1) {
alert ("Tab 1!");
}
}
});
至于 Spring 代码,其他人将不得不帮助您!
您创建选项卡时遇到了几个问题 html。附件是您修改后的代码,在我尝试时可以使用。您在选项卡 div 上缺少应与 href 匹配的 id 属性。希望这对 jQuery 部分有所帮助。
W.r.t 关于与 spring 绑定的第二个问题,现在您已将事件处理程序附加到选项卡,您可以触发 AJAX post 或获取从基于选项卡的事件处理程序并发送选项卡的值(我不确定你想发送什么值)。您可以从“http://api.jquery.com/jquery.ajax/”查看如何执行 get/post。你的问题并没有解释你期望从管制员那里得到什么样的回应,所以我无法帮助你。希望这有帮助。
<script type="text/javascript" >
$(function () {
$('#tabs').tabs({
activate: function(event ,ui){
var $activeTab = $('#tabs').tabs('option', 'active');
if ($activeTab == 1) {
alert("tab1");
}
}
});
});
</script>
<body>
<div id="tabs" role="tabpanel">
<!-- Nav tabs -->
<ul id="tabs" class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#tabs-1" aria-controls="Active" role="tab" data-toggle="tab">Active</a></li>
<li role="presentation"><a href="#tabs-2" aria-controls="Inactive" role="tab" data-toggle="tab">Inactive</a></li>
<li role="presentation"><a href="#tabs-3" aria-controls="Retired" role="tab" data-toggle="tab">Retired</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div id="tabs-1" role="tabpanel" class="tab-pane active" ></div>
<div id="tabs-2" role="tabpanel" class="tab-pane" ></div>
<div id="tabs-3" role="tabpanel" class="tab-pane" ></div>
</div>
</div>
</body>
过去 2 天我一直在谷歌搜索,试图弄清楚如何将事件添加到我的选项卡,但我无法使用任何解决方案。我对这些东西完全不知所措,所以请包括简单的解释。到目前为止,我有一些选项卡(我刚刚在其中复制并粘贴):
<div id="tabs" role="tabpanel">
<!-- Nav tabs -->
<ul id="tabs" class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#tabs-1" aria-controls="Active" role="tab" data-toggle="tab">Active</a></li>
<li role="presentation"><a href="#tabs-2" aria-controls="Inactive" role="tab" data-toggle="tab">Inactive</a></li>
<li role="presentation"><a href="#tabs-3" aria-controls="Retired" role="tab" data-toggle="tab">Retired</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="Active"></div>
<div role="tabpanel" class="tab-pane" id="Inactive"></div>
<div role="tabpanel" class="tab-pane" id="Retired"></div>
</div>
</div>
我还复制并粘贴了一个 JavaScript 函数,它看起来与我处理过的任何其他 JavaScript 函数不同,但它不起作用(永远不会触发警报语句):
<script type="text/javascript" >
$(function () {
$('#tabs').tabs({
activate: function (event, ui) {
var $activeTab = $('#tabs').tabs('option', 'active');
if ($activeTab == 1) {
alert(Tab 1!);
}
if ($activeTab == 2){}
if ($activeTab == 3){}
}
});
});
</script>
我正在使用 Spring MVC,我的目的是通过 JavaScript 函数将选项卡的值发送回控制器(因为我看不到其他方法)。基于该值,页面上的 table 填充了特定数据(在本例中为 'modules')。我已经创建了一个控制器方法,但我不确定它应该是 get 还是 post 或者如何在其中获取选项卡值。这是我尝试的控制器方法代码:
@RequestMapping(method = RequestMethod.POST, value = "/update")
public final String changeTab(final ModelMap model, @RequestParam(value = "id") String id) {
System.out.println(id);
//model.addAttribute("modules", moduleDao.sortStatus(status));
return "module/admin";
}
我可以对我的代码做些什么来实现这个目标?我走在正确的轨道上吗?任何帮助深表感谢。
[编辑] 您的 HTML 中有些东西破坏了 jQuery 标签代码。
考虑这个 fiddle:http://jsfiddle.net/1r712od4/2/ - 它工作正常。
尝试从您的代码中取出不需要的 aria-controls
和 类 并重试。
你需要的 JS 是这样的:
$('#tabs').tabs({
activate: function (event, ui) {
var activeTab = ui.newTab.data("tabid");
if (activeTab == 1) {
alert ("Tab 1!");
}
}
});
至于 Spring 代码,其他人将不得不帮助您!
您创建选项卡时遇到了几个问题 html。附件是您修改后的代码,在我尝试时可以使用。您在选项卡 div 上缺少应与 href 匹配的 id 属性。希望这对 jQuery 部分有所帮助。
W.r.t 关于与 spring 绑定的第二个问题,现在您已将事件处理程序附加到选项卡,您可以触发 AJAX post 或获取从基于选项卡的事件处理程序并发送选项卡的值(我不确定你想发送什么值)。您可以从“http://api.jquery.com/jquery.ajax/”查看如何执行 get/post。你的问题并没有解释你期望从管制员那里得到什么样的回应,所以我无法帮助你。希望这有帮助。
<script type="text/javascript" >
$(function () {
$('#tabs').tabs({
activate: function(event ,ui){
var $activeTab = $('#tabs').tabs('option', 'active');
if ($activeTab == 1) {
alert("tab1");
}
}
});
});
</script>
<body>
<div id="tabs" role="tabpanel">
<!-- Nav tabs -->
<ul id="tabs" class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#tabs-1" aria-controls="Active" role="tab" data-toggle="tab">Active</a></li>
<li role="presentation"><a href="#tabs-2" aria-controls="Inactive" role="tab" data-toggle="tab">Inactive</a></li>
<li role="presentation"><a href="#tabs-3" aria-controls="Retired" role="tab" data-toggle="tab">Retired</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div id="tabs-1" role="tabpanel" class="tab-pane active" ></div>
<div id="tabs-2" role="tabpanel" class="tab-pane" ></div>
<div id="tabs-3" role="tabpanel" class="tab-pane" ></div>
</div>
</div>
</body>