Jquery UI-是否重新加载所选选项卡?

Jquery UI-是否重新加载所选选项卡?,jquery,jquery-ui,jquery-ui-tabs,Jquery,Jquery Ui,Jquery Ui Tabs,是否有方法重新加载所选选项卡我知道有.load()函数。但是它需要一个选项卡索引,而我似乎看不到获取所选选项卡id的方法。更新:在jQuery 1.9中,selected选项被重命名为active。看 要获取当前选定的索引,请使用选项卡('option','selected')功能 例如,如果您有一个按钮#button(并且#tabs元素被制成制表符)用于获取索引,请执行以下操作: $("#button").click(function() { var current_index = $

是否有方法重新加载所选选项卡我知道有.load()函数。但是它需要一个选项卡索引,而我似乎看不到获取所选选项卡id的方法。

更新:在jQuery 1.9中,
selected
选项被重命名为
active
。看

要获取当前选定的索引,请使用
选项卡('option','selected')
功能

例如,如果您有一个按钮
#button
(并且
#tabs
元素被制成制表符)用于获取索引,请执行以下操作:

$("#button").click(function() {
    var current_index = $("#tabs").tabs("option","selected");
});
下面是一个演示:


要回答jQuery 1.8及更早版本中标题所指示的问题,您可以执行以下操作:

var current_index = $("#tabs").tabs("option","selected");
$("#tabs").tabs('load',current_index);
var current_index = $("#tabs").tabs("option","active");
$("#tabs").tabs('load',current_index);
在jQuery 1.9及更高版本中,您将执行以下操作:

var current_index = $("#tabs").tabs("option","selected");
$("#tabs").tabs('load',current_index);
var current_index = $("#tabs").tabs("option","active");
$("#tabs").tabs('load',current_index);

我设法让它工作,但它现在加载第一个选项卡两次,当它不活跃。如果有人对此有任何建议,我们将不胜感激

您可以在上面看到,向服务器发出了两次请求,但第一个请求成功,因此它取消了第二个请求。不确定这是否是一个问题。。?但在控制台上看到它并不能让我安心

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

Simen确实得到了正确的答案,但自从jQueryUI1.9以来,这一点已经被弃用了

您现在使用“活动”而不是“选定”

因此,代码如下所示:

var-current_index=$(“选项卡”).tabs(“选项”,“活动”);

$(“#制表符”).tabs('load',当前#u索引)

如果其他人偶然发现这个问题,并且像我一样正在使用jQuery EasyUI的标签,那么Simen上面的答案将不起作用。相反,要刷新选项卡,请使用:

var tab = $('#tt').tabs('getSelected');
tab.panel('refresh');
其中,
tt
是通过创建的选项卡组的
id

<div id="tt" class="easyui-tabs">

下载此cookie插件:

将jQuery cookie插入页面

 <script src="jquery.cookie.js"></script>

因此,您的问题是如何获取所选选项卡的索引?这将解决我的问题,是的。谢谢,这正是我所要寻找的。此解决方案的问题是,它会重新加载未选择的选项卡两次(在服务器上点击两次)。不幸的是,在最新版本的jQuery UI中,这不再有效。根据下面阿托曼的回答,您必须将
“选定的”
替换为
“活动的”
。在添加
$(“#tabs.ui tabs active”))之前,我无法使用。单击()这应该是一个单独的问题,以便人们可以正确回答:)