Jquery UI - 重新加载选定的标签?

时间:2010-08-06 19:42:32

标签: jquery jquery-ui jquery-ui-tabs

有没有办法重新加载选定的选项卡我知道有.load()函数。但它想要一个标签索引,我似乎没有办法获取所选标签ID。

5 个答案:

答案 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)

我设法让它工作,但它现在加载第一个标签两次没有激活。如果有人对此有任何更多的建议,将非常感谢。console showing a cancelled request to the server

您可以看到上面的请求是两次到服务器,但第一个请求成功,所以取消第二个请求。不确定这是否是一个问题..?但是我在控制台中看到它并没有让我感到放心

  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 );