有没有办法重新加载选定的选项卡我知道有.load()函数。但它想要一个标签索引,我似乎没有办法获取所选标签ID。
答案 0 :(得分:24)
更新:在jQuery 1.9中,selected
选项重命名为active
。请参阅attomman's answer.
要获取当前选定的索引,请使用tabs('option','selected')
功能。
例如,如果您想要获取索引的按钮#button
(并且#tabs
元素已制作选项卡),请执行以下操作:
$("#button").click(function() {
var current_index = $("#tabs").tabs("option","selected");
});
以下是演示:http://jsfiddle.net/sVgAT/
<小时/> 要回答标题所指出的问题,在jQuery 1.8及更早版本中,您可以这样做:
var current_index = $("#tabs").tabs("option","selected");
$("#tabs").tabs('load',current_index);
在jQuery 1.9及更高版本中,您可以这样做:
var current_index = $("#tabs").tabs("option","active");
$("#tabs").tabs('load',current_index);
答案 1 :(得分:7)
Simen确实有正确的答案,但自JQuery UI 1.9以来,这已被弃用
http://jqueryui.com/upgrade-guide/1.9/#deprecated-selected-option-renamed-to-active
您现在使用'有效'代替'已选'
所以代码看起来像:
var current_index = $("#tabs").tabs("option","active");
$("#tabs").tabs('load',current_index);
答案 2 :(得分:2)
如果其他人偶然发现这个问题并且 - 像我一样 - 使用jQuery EasyUI的标签,Simen上面的回答将无效。相反,要刷新选项卡,请使用:
var tab = $('#tt').tabs('getSelected');
tab.panel('refresh');
tt
是通过
id
<div id="tt" class="easyui-tabs">
答案 3 :(得分:1)
我设法让它工作,但它现在加载第一个标签两次没有激活。如果有人对此有任何更多的建议,将非常感谢。
您可以看到上面的请求是两次到服务器,但第一个请求成功,所以取消第二个请求。不确定这是否是一个问题..?但是我在控制台中看到它并没有让我感到放心
constructor: (@element) ->
@tabIndex = 0
@tabs = @element.find('#tabs')
@tabs.tabs
spinner: "Loading.."
cache: false
ajaxOptions:
cache: false
error: ( xhr, status, index, anchor ) ->
$( anchor.hash ).html "Couldn't load this tab. We'll try to fix this as soon as possible."
#add custom load to make sure they always reload even the current tab when clicked
@element.find('ul li a').click (e) =>
if @tabIndex is @tabs.tabs('option', 'selected')
@tabs.tabs 'load', @tabs.tabs('option', 'selected')
@tabIndex = @tabs.tabs('option', 'selected')
答案 4 :(得分:0)
下载此插件以获取Cookie:
http://plugins.jquery.com/cookie/
将jQuery cookie插入您的页面
<script src="jquery.cookie.js"></script>
并添加:
$(".tabs").click(function() {
//getter , get the active tab
var active = $( "#tabs" ).tabs( "option", "active" );
$.cookie("tabs_selected", active);
});
var cookieValue = $.cookie("tabs_selected");
// setter, set the active tab stocked
$( "#tabs" ).tabs( "option", "active",cookieValue );